Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHP で mp3 プレイヤーを実装しよう
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
memory
PRO
April 11, 2026
Programming
45
0
Share
PHP で mp3 プレイヤーを実装しよう
PHP カンファレンス小田原 2026
memory
PRO
April 11, 2026
More Decks by memory
See All by memory
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
170
AI 時代だからこそ学ぶべき PHP の基礎
m3m0r7
PRO
7
2.3k
JVM の仕組みを理解して PHP で実装してみよう
m3m0r7
PRO
1
380
コードゴルファー道
m3m0r7
PRO
0
570
ChatGPT とつくる PHP で OS 実装
m3m0r7
PRO
3
310
事業観点から見る技術的負債の返済
m3m0r7
PRO
4
1.2k
PHP でアセンブリ言語のように書く技術
m3m0r7
PRO
1
270
PHP でアセンブリっぽく書く技術
m3m0r7
PRO
1
170
How to implement a RubyVM with PHP?
m3m0r7
PRO
3
3.1k
Other Decks in Programming
See All in Programming
Kubernetes上でAgentを動かすための最新動向と押さえるべき概念まとめ
sotamaki0421
2
370
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
200
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
820
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
180
へんな働き方
yusukebe
6
2.9k
SkillがSkillを生む:QA観点出しを自動化した
sontixyou
5
2.4k
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
120
Radical Imagining - LIFT 2025-2027 Policy Agenda
lift1998
0
230
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
130
Feature Toggle は捨てやすく使おう
gennei
0
410
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
190
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
140
Featured
See All Featured
Done Done
chrislema
186
16k
Abbi's Birthday
coloredviolet
2
6.3k
Navigating Weather and Climate Data
rabernat
0
160
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
27
3.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
190
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
54k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
170
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
670
Optimizing for Happiness
mojombo
378
71k
Transcript
ΊΓʔ 1)1ͰNQϓϨΠϠʔΛ ࣮͠Α͏ 1)1ΧϯϑΝϨϯεখాݪ 1
ΊΓʔ NNS ιϑτΣΞΤϯδχΞ͔ΒΩϟϦΞ͕࢝ ·ΓɼελʔτΞοϓ্اۀͰ$50 ͱͯ͠׆ಈɻ ݱࡏελʔτΞοϓͰ$50Λ͍ͯ͠·͢ɻ 2 NFNPSZ NNS
3
Έͳ͞Μ͕1)1ͰNQϓϨΠϠʔΛ ࣮͢Δͱͨ͠Β 4
ԿΛࢥ͍ු͔·͔͢ʁ 5
ͬͺΓ)5.-+BWB4DSJQUͱ Ͳ͏Έ߹ΘͤΔ͔Ͱ͢ΑͶʁ 6
ͦΜͳͷΦϞϯφΠΑͶʙ 7
ͦΜͳΘ͚Ͱ༻ҙ͖ͯ͠·ͨ͠ 8
9 https://github.com/m3m0r7/php-mp3-player
ͱ͍͏͜ͱͰࠓ 10
1)1ΛͬͨωΠςΟϒΞϓϦͱͯ͠ NQϓϨΠϠʔΛ࣮͢ΔϋπʔΛ͓͠·͢ 11
1)1ΛͬͨωΠςΟϒΞϓϦͱͯ͠ NQϓϨΠϠʔΛ࣮͢ΔϋπʔΛ͓͠·͢ 12
NQϓϨΠϠʔͷ࡞Γํ 1)1Λ༻͍࣮ͨखॱ %&.0 ·ͱΊ 13 ͘͡
NQϓϨΠϠʔͷ࡞Γํ 14
࡞Γํछྨ͋Δ NQσίʔμʔ͔Βͷࣗ࡞ қߴ NQͷόΠφϦΛཧղͯ͠ɼஞ࣍ಡΜͰ͍͘ํ๏ طͷϥΠϒϥϦΛ༻͍Δ қத
طͷNQσίʔμʔΛ༻͍࣮͍ͯͯ͘͠ํ๏ 15 NQϓϨΠϠʔͷ࡞Γํ
࡞Γํछྨ͋Δ 16 NQϓϨΠϠʔͷ࡞Γํ σίʔμͷࣗ࡞ طϥΠϒϥϦΛ༻͍Δ ֶश NQͷߏΛཧղͰ͖Δ ϥΠϒϥϦͷ͍ํΛֶΔ ࣝ ֶͷ͕ࣝඞཁʹͳΔ
ʢࡾ֯ؔɼඍੵɼϑʔϦΤมͷࣝ ͳͲʣ ϥΠϒϥϦͷ"1*Λୟ͚ͩ͘ ߴԽ 1)1Ͱಈ͔͢Ҏ্ඞਢ طʹ͞Ε͍ͯΔ
NQͷߏ 17
*%W *%Wҙ 18 NQͷߏ
*%W *%Wҙ 19 NQͷߏ
ΦʔσΟΦϑϨʔϜ 20 NQͷߏ
ΦʔσΟΦϑϨʔϜ 21 NQͷߏ
ΦʔσΟΦϑϨʔϜ 22 NQͷߏ ྲྀੴʹɼ͜ΕΛ1)1Ͱ ಡΉͷΠΧπ͘ͳ͍ʂʁ
1)1ͰಡΉͷ͕ΠΧπ͍ཧ༝બ 23
ѹॖϨʔτ͕LCQTͩͱ͢Δͱ L)[ͷ߹ඵؒʹճલޙ ΦʔσΟΦϑϨʔϜΛಡΜͰͦΕΛ࠶ੜ͢ΔͨΊͷ σόΠεͱํʹ௨৴͢Δ༨ྗΛ͢ߴԽ͕ඞਢ 24 1)1ͰಡΉͷ͕ΠΧπ͍ཧ༝બ
ʜࢲ1)1Ͱ6CVOUVΛΤϛϡϨʔτ ֶͯ͠ͼ·ͨ͠ 25
ײతʹΘ͔Γ·͢ 26
͓ͪΌͱ࣮ͯ͢͠Δʹϋʔυϧ͕ߴ͍ 27
ΈΜͳ؆୯ʹͰ͖ͨ΄͏͕͍͍ΑͶʂʁ 28
ͱ͍͏Θ͚Ͱ 29
αΫοͱ࡞Εͨํָ͕͍͠ͱࢥ͏ͷͰ طϥΠϒϥϦΛ͏ํ๏Ͱղઆ͠·͢ 30
࡞Γํछྨ͋Δ NQσίʔμʔ͔Βͷࣗ࡞ қߴ NQͷόΠφϦΛཧղͯ͠ɼஞ࣍ಡΜͰ͍͘ํ๏ طͷϥΠϒϥϦΛ༻͍Δ қத
طͷNQσίʔμʔΛ༻͍࣮͍ͯͯ͘͠ํ๏ 31 NQϓϨΠϠʔͷ࡞Γํ
1)1Λ༻͍࣮ͨखॱ 32
''*Λ༻͍ͯ$ϥΠϒϥϦΛݺͼग़͢ 1)1͔Β''*ʢ'PSFJHO'VODUJPO*OUFSGBDFʣ͕ಋೖ ͞Εͨɻ 1)1Ϣʔβʔʹͱͬͯͷ֦ுɻʮ͜ΕͰωΠςΟϒΞ ϓϦ͕࡞ΕΔͧʜʂʯͱ $ϥΠϒϥϦΛݺͼग़ͤΕͳΜͰͰ͖Δɻ աڈʹ1)1Ͱ/'$ϦʔμʔΛ࡞ͬͨΓ͠·ͨ͠ɻ 33
1)1Λ༻͍࣮ͨखॱ
༻ҙ͢Δͷ 1)1 ''*Λ༗ޮʹͨ͠ͷ MJCNQH $Ͱॻ͔ΕͨNQσίʔυ༻ϥΠϒϥϦ
4%- 4JNQMF%JSFDU.FEJB-BZFS ωΠςΟϒΞϓϦέʔγϣϯͷ࣮Ͱը໘ʹϨϯμϦϯά͢Δͷʹ༻͍Δ 34 1)1Λ༻͍࣮ͨखॱ
''* 35 1)1Λ༻͍࣮ͨखॱ extern ͞ΕͨؔΛఆٛ ϚΫϩؔͳͲఆٛͰ͖ͳ͍ͷͰɼ ϔομʔϑΝΠϧΛͦͷ··షΓ͚Δ͚ͩͰ ಈ͔ͳ͍…͕΄ͱΜͲ.h ͷதΛషΔ͚ͩɻ
''* 36 1)1Λ༻͍࣮ͨखॱ ϥΠϒϥϦ·Ͱͷύε
''* 37 1)1Λ༻͍࣮ͨखॱ ϚδοΫϝιουͱͯ͠ ݺͼग़ͤΔΑ͏ʹͳΔ
ͱͯ؆୯Ͱ͢Ͷ ͜ΕΛMJCNQH 4%- ྆ํʹ͑0,Ͱ͢ 38
MJCNQH 39 1)1Λ༻͍࣮ͨखॱ ߏͷఆٛ mac ͷ߹ brew ͰೖΕͨ dylib ͷύε
FFI::cdef ͰߏମɾܕΛఆٛͯ͠ ͦΕΛؔʹ͢͜ͱ͕Ͱ͖Δ
4%- 40 1)1Λ༻͍࣮ͨखॱ mac ͷ߹ brew ͰೖΕͨ dylib ͷύε
4%- 4%-ͨͩΟϯυͷϨϯμϦϯάΛ͢Δ͚ͩͰͳ͘ɼΦʔσΟΦͳͲͷग़ྗ ѻ͏͜ͱ͕Ͱ͖·͢ɻϑΥϯτࢦఆͨ͠ͰϨϯμϦϯάͰ͖·͢ɻʢྫ/PUP TBOT+1Λ͍ͬͯ·͢ʣ ·ͨɼNQϓϨΠϠʔΛ࡞Δʹࡍͯ͠ॏཁͳʮ࠶ੜʯϘλϯͳͲΠϕϯτॲཧͱ͠ ͯϚεͷ࠲ඪʹԠͯ͡ൃՐͤ͞Δ͜ͱʹͳΓ·͢ɻ ͜ΕΒͷϘλϯγʔΫόʔͯ͢ํܗͷਤܗΛ͍͔ͭ͘ग़ྗ͍ͯ͠Δ͚ͩͰ͢ɻ
ʢ࠶ੜϘλϯएׯෳࡶͳͷͰ47(ϑΝΠϧΛಡΈࠐΊ0,ʣ 41 1)1Λ༻͍࣮ͨखॱ
4%- 42 1)1Λ༻͍࣮ͨखॱ ςΩετͷग़ྗ
4%- 43 1)1Λ༻͍࣮ͨखॱ mp3 ͔ΒΞʔτϫʔΫΛ நग़ͯ͠ग़ྗ
4%- 44 1)1Λ༻͍࣮ͨखॱ 3 छྨͷํܗʢγʔΫόʔͷഎ ܠɼਐḿήʔδɼϘλϯʣͰ ϨϯμϦϯά Ϙλϯʢํܗʣͷ࠲ඪΛཧղ͠ ͯɼγʔΫόʔɼϘϦϡʔϜΛૢ࡞ Ͱ͖ΔΑ͏ʹ͢Ε࣮Ͱ͖Δ
4%- 45 1)1Λ༻͍࣮ͨखॱ SVG + ํܗΛ༻͍ͯ ϨϯμϦϯά
%&.0 46
·ͱΊ 47
w1)1ͰNQϓϨΠϠʔΛ࡞Δͷͦ͜·Ͱ͘͠ͳ͍ ͦ͏''*͕͋ΕͶʂ wॻ͍͍ͯͳ͍Ͱ͕͢ɼಈըͷ࠶ੜͪΖΜͰ͖ΔͷͰϏ σΦϓϨΠϠʔͷ࣮ͪΖΜͰ͖·͢ɻ w͋ͳͨҰॹʹ1)1Ͱ͓Ζ͍ͷ࡞͍͖ͬͯ·͠ΐ͏ 48 ·ͱΊ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 49