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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
memory
PRO
April 11, 2026
Programming
480
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHP で mp3 プレイヤーを実装しよう
PHP カンファレンス小田原 2026
memory
PRO
April 11, 2026
More Decks by memory
See All by memory
pnl で簡易的に作る PHP ネイティブアプリケーション
m3m0r7
PRO
0
51
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
1
1.1k
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
240
AI 時代だからこそ学ぶべき PHP の基礎
m3m0r7
PRO
7
2.5k
JVM の仕組みを理解して PHP で実装してみよう
m3m0r7
PRO
1
640
コードゴルファー道
m3m0r7
PRO
0
660
ChatGPT とつくる PHP で OS 実装
m3m0r7
PRO
3
550
事業観点から見る技術的負債の返済
m3m0r7
PRO
4
1.3k
PHP でアセンブリ言語のように書く技術
m3m0r7
PRO
1
310
Other Decks in Programming
See All in Programming
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
680
今さら聞けない .NET CLI
htkym
0
190
Cloudflare is Agents
chimame
0
160
Built Our Own Background Agent at LayerX
layerx
PRO
10
5.4k
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
160
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
400
仕様駆動開発の消費期限
watany
20
8.2k
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
370
Android CLI
fornewid
0
220
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
360
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
690
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
840
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
119
120k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
790
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Leo the Paperboy
mayatellez
8
2.1k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Curse of the Amulet
leimatthew05
2
14k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
430
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
700
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