SlideShare a Scribd company logo
1 of 44
Download to read offline
Beyond an
Audio Player
楊維中 a.k.a zonble

iPlayground 2019
iOS Developer @KKBOX
http://zonble.net
zonble@gmail.com
KKBOX
iOS macOS
tvOS watchOS
Uta Pass
iOS
KKBOX Kids
iOS
Android
KKTIX &
KKTIX Manager
iOS
I’ve been ever working on…
My Latest App
A Player Needs to Support
• Built-in Speaker

• Headsets on Headphone Jack

• Bluetooth Headsets/Speakers

• AirPlay

• CarPlay

• Other In-Car Systems

• MIH Hearing Aids (助聽器)
CarPlay
There is only a session about
CarPlay Audio, and too much
Apple did not tell you.
Getting Start With CarPlay
1.Get an entitlement

2.Get test devices

3.Get your self into the mine area
(踩雷)
The CarPlay Experience
• You can provide only a tree structure to let users to
browse your contents

• You cannot customize user interface

• You can use only the callback block when user want to
play an item. There is no way to prompt alerts
Entitlement
Entitlement
Test Device
• 你當然也可以在辦公室擺台⾞車車

• 台灣很多汽⾞車車⾳音響公司,提供
⾞車車⽤用⾳音響改家⽤用的服務,可以
⾃自⾏行行上網查詢

• 淘寶等電商上,也有在賣⾞車車機
改裝家⽤用套件

• …⽤用改裝家⽤用的 CarPlay 比
Home Pod 更更爽喔
Test Device
• 除了了 CarPlay 以
外,也需要準備⼀一
些其他的⾞車車⽤用⾳音響
裝置測試

• ⼀一般的電腦電源也
可以⽤用,但是要知
道怎樣讓電源線通
電
Implementing CarPlay
• Implement the data source and delegate of
MPPlayableContentManager 

• Set now playing info to MPNowPlayingCenter

• Implements commands of MPRemoteCommandCenter
WWDC 2018 #213
WWDC 2018 #213
You don’t have to
do this at
app launch, actually.
WWDC 2018 #213
But if you do not
implement any command,
MPPlayerableContenManager
does not call your data source
and delegate!
BTW. On Apple TV,
MPRemoteController
does not work without
setting now playing info.
MPRemoteCommandCenter
• Since iOS 7.1

• Not only for CarPlay

• But also for controls on iOS lock screen, remote controls
on Blue Tooth headsets, other in-car system and so on
MPRemoteCommandCenter
• pauseCommand

• playCommand

• stopCommand

• togglePlayPauseCommand
MPRemoteCommandCenter
• nextTrackCommand

• previousTrackCommand

• changeShuffleModeCommand

• changeRepeatModeCommand
❌ The Wrong Way
✅ The Right Way
MPRemoteCommandCenter
• changePlaybackPositionCommand

• seekBackwardCommand

• seekForwardCommand

• skipBackwardCommand

• skipForwardCommand

• Calling skipBackwardCommand and skipForwardCommand
may cause seekBackwardCommand also called on the lock
screen of iOS 11
Working with
MPPlayableContentManager
USE KKCARPLAYMANAGER!
If you are making a player using
Core Audio, don’t call
AUGraphStop() then
AUGraphStart() immediately.
AUGraphStart()would fail
when connecting to CarPlay
AudioGraph
• Apple’s C API.

• Deprecated in 2019. Apple asks us to use AVAudioEngine
instead, but, let’s take a look at UIWebView…

• AudioGraph manages audio nodes. You shall put the
audio nodes into an audio graph, connect the nodes, and
then initialize the audio graph

• AUGraphStart() and AUGraphStop() are APIs for
AudioGraph
A Core Audio Player
Remote
IO
Node
EQ Node
Reverb
Node
Mixer
Node
Audio Graph
Bus 0 Bus 0Bus 0
Bus 0
Bus 1
Render Callback Function
Render Callback Function
EQ
Audio
Unit
Reverb
Audio
Unit
Bus 1 of Remote IO
is for input
An iOS Streamer
Mixer
Node
Render Callback Function
Online
Data
Decrypt
DRM
Parse
Audio
Convert
to PCM
Audio
Converter
Service
or
AVAudioConverter
Audio File
Stream
Service
NSURLConnection,
URLSession…
A Core Audio Player on Mac
Output
Node
EQ Node
Reverb
Node
Mixer
Node
Audio Graph
Bus 0 Bus 0Bus 0
Bus 0
Bus 1
Render Callback Function
Render Callback Function
EQ
Audio
Unit
Reverb
Audio
Unit
Sub Audio Graph
MFi Heading Aids
Since iPhone 5
Compatible hearing devices are listed at
https://support.apple.com/en-us/HT201466
台灣有哪些 MFi 助聽器?
NX
PX
Microphone
for PX
Hearing Aids requests
Larger Buffer Size
Player without setting
max frames per slice
Remote
IO
Node
EQ Node
Reverb
Node
Mixer
Node
Audio Graph
Bus 0
Render Callback Function
1024 1024 1024 1024 1024 1024 1024
1024
👌 👌 👌 👌 👌
When screen is locked
Remote
IO
Node
EQ Node
Reverb
Node
Mixer
Node
Audio Graph
Bus 0
Render Callback Function
1024 1024 1024 1024 1024 1024 1024
4096
✋
https://developer.apple.com/library/archive/qa/qa1606/_index.html
Technical Q&A QA1606: Audio Unit Processing Graph - Ensuring audio playback
continues when screen is locked
When screen is locked
Remote
IO
Node
EQ Node
Reverb
Node
Mixer
Node
Audio Graph
Bus 0
Render Callback Function
4096 4096 4096 4096 4096 4096 4096
4096
👌 👌 👌 👌 👌
When using
MFi hearing aids
Remote
IO
Node
EQ Node
Reverb
Node
Mixer
Node
Audio Graph
Bus 0
Render Callback Function
4096 4096 4096 4096 4096 4096 4096
5645
✋
🤔
AVAudioSession may also
effect buffer size
我要感謝⼀一些⼈人
• KKBOX iOS Team,尤其是 Oliver

• KKBOX 客服部

• 台灣 Signia

• Jedi (jedi.org)

More Related Content

What's hot

Create Your Own Chatbot with Hubot and CoffeeScript
Create Your Own Chatbot with Hubot and CoffeeScriptCreate Your Own Chatbot with Hubot and CoffeeScript
Create Your Own Chatbot with Hubot and CoffeeScriptRob Scaduto
 
DevOps + MongoDB Realm Serverless Functions = 🤩
DevOps + MongoDB Realm Serverless Functions = 🤩DevOps + MongoDB Realm Serverless Functions = 🤩
DevOps + MongoDB Realm Serverless Functions = 🤩Lauren Hayward Schaefer
 
DSC Android Study Jam
DSC Android Study JamDSC Android Study Jam
DSC Android Study JamDSC GVP
 
PhoneGap - Now and the Future
PhoneGap - Now and the FuturePhoneGap - Now and the Future
PhoneGap - Now and the FutureTim Kim
 
Flutter Beta but Better and Better
Flutter Beta but Better and BetterFlutter Beta but Better and Better
Flutter Beta but Better and BetterDonghyeok Kang
 
Flutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessFlutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessBartosz Kosarzycki
 
All a flutter about Flutter.io
All a flutter about Flutter.ioAll a flutter about Flutter.io
All a flutter about Flutter.ioSteven Cooper
 
Xamarin - Victim of Phonegap’s horrible reputation
Xamarin - Victim of Phonegap’s horrible reputationXamarin - Victim of Phonegap’s horrible reputation
Xamarin - Victim of Phonegap’s horrible reputationGabor Wnuk
 
DSC ASEB Android Study Jams 2020: New to Programming 3
DSC ASEB Android Study Jams 2020: New to Programming 3DSC ASEB Android Study Jams 2020: New to Programming 3
DSC ASEB Android Study Jams 2020: New to Programming 3Aravind V. Nair
 
Deploying Apps Heroku
Deploying Apps HerokuDeploying Apps Heroku
Deploying Apps HerokuAjit N K
 
Google DSC Android Study Jams Session 1
Google DSC Android Study Jams Session 1Google DSC Android Study Jams Session 1
Google DSC Android Study Jams Session 1BeauWilliams7
 
Branching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionBranching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionOutSystems
 
Flutter dart assignment help
Flutter dart assignment helpFlutter dart assignment help
Flutter dart assignment helpcalltutors
 
The REAL Angular Keynote
The REAL Angular KeynoteThe REAL Angular Keynote
The REAL Angular KeynoteLukas Ruebbelke
 
Fashionable XCUITest for iOS Apps by Shashikant Jagtap
Fashionable XCUITest for iOS Apps by Shashikant JagtapFashionable XCUITest for iOS Apps by Shashikant Jagtap
Fashionable XCUITest for iOS Apps by Shashikant JagtapSauce Labs
 
Perfecting Your Development Tools: Updates to the Helix Plugin for Jenkins
Perfecting Your Development Tools: Updates to the Helix Plugin for JenkinsPerfecting Your Development Tools: Updates to the Helix Plugin for Jenkins
Perfecting Your Development Tools: Updates to the Helix Plugin for JenkinsPerforce
 

What's hot (20)

Create Your Own Chatbot with Hubot and CoffeeScript
Create Your Own Chatbot with Hubot and CoffeeScriptCreate Your Own Chatbot with Hubot and CoffeeScript
Create Your Own Chatbot with Hubot and CoffeeScript
 
DevOps + MongoDB Realm Serverless Functions = 🤩
DevOps + MongoDB Realm Serverless Functions = 🤩DevOps + MongoDB Realm Serverless Functions = 🤩
DevOps + MongoDB Realm Serverless Functions = 🤩
 
Flutter Bootcamp
Flutter BootcampFlutter Bootcamp
Flutter Bootcamp
 
DSC Android Study Jam
DSC Android Study JamDSC Android Study Jam
DSC Android Study Jam
 
PhoneGap - Now and the Future
PhoneGap - Now and the FuturePhoneGap - Now and the Future
PhoneGap - Now and the Future
 
Flutter introduction
Flutter introductionFlutter introduction
Flutter introduction
 
NativeScript + Push Notifications
NativeScript + Push NotificationsNativeScript + Push Notifications
NativeScript + Push Notifications
 
Flutter Beta but Better and Better
Flutter Beta but Better and BetterFlutter Beta but Better and Better
Flutter Beta but Better and Better
 
Flutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessFlutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for business
 
Full Stack Flutter Testing
Full Stack Flutter Testing Full Stack Flutter Testing
Full Stack Flutter Testing
 
All a flutter about Flutter.io
All a flutter about Flutter.ioAll a flutter about Flutter.io
All a flutter about Flutter.io
 
Xamarin - Victim of Phonegap’s horrible reputation
Xamarin - Victim of Phonegap’s horrible reputationXamarin - Victim of Phonegap’s horrible reputation
Xamarin - Victim of Phonegap’s horrible reputation
 
DSC ASEB Android Study Jams 2020: New to Programming 3
DSC ASEB Android Study Jams 2020: New to Programming 3DSC ASEB Android Study Jams 2020: New to Programming 3
DSC ASEB Android Study Jams 2020: New to Programming 3
 
Deploying Apps Heroku
Deploying Apps HerokuDeploying Apps Heroku
Deploying Apps Heroku
 
Google DSC Android Study Jams Session 1
Google DSC Android Study Jams Session 1Google DSC Android Study Jams Session 1
Google DSC Android Study Jams Session 1
 
Branching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionBranching Your Way to Low-Code Perfection
Branching Your Way to Low-Code Perfection
 
Flutter dart assignment help
Flutter dart assignment helpFlutter dart assignment help
Flutter dart assignment help
 
The REAL Angular Keynote
The REAL Angular KeynoteThe REAL Angular Keynote
The REAL Angular Keynote
 
Fashionable XCUITest for iOS Apps by Shashikant Jagtap
Fashionable XCUITest for iOS Apps by Shashikant JagtapFashionable XCUITest for iOS Apps by Shashikant Jagtap
Fashionable XCUITest for iOS Apps by Shashikant Jagtap
 
Perfecting Your Development Tools: Updates to the Helix Plugin for Jenkins
Perfecting Your Development Tools: Updates to the Helix Plugin for JenkinsPerfecting Your Development Tools: Updates to the Helix Plugin for Jenkins
Perfecting Your Development Tools: Updates to the Helix Plugin for Jenkins
 

Similar to iPlayground: CarPlay and MFI Hearing Aids

Android Audio & OpenSL
Android Audio & OpenSLAndroid Audio & OpenSL
Android Audio & OpenSLYoss Cohen
 
Get On The Audiobus (CocoaConf Atlanta, November 2013)
Get On The Audiobus (CocoaConf Atlanta, November 2013)Get On The Audiobus (CocoaConf Atlanta, November 2013)
Get On The Audiobus (CocoaConf Atlanta, November 2013)Chris Adamson
 
Get On The Audiobus (CocoaConf Boston, October 2013)
Get On The Audiobus (CocoaConf Boston, October 2013)Get On The Audiobus (CocoaConf Boston, October 2013)
Get On The Audiobus (CocoaConf Boston, October 2013)Chris Adamson
 
What’s Going On with the Adobe® Flash® Platform and why it is still Relevant ...
What’s Going On with the Adobe® Flash® Platform and why it is still Relevant ...What’s Going On with the Adobe® Flash® Platform and why it is still Relevant ...
What’s Going On with the Adobe® Flash® Platform and why it is still Relevant ...Joseph Labrecque
 
iOS development made easy
iOS development made easyiOS development made easy
iOS development made easyAdrian Thompson
 
MIDI DAW II - Class 3
MIDI DAW II - Class 3MIDI DAW II - Class 3
MIDI DAW II - Class 3Walt Ribeiro
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapRaymond Camden
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstRaymond Camden
 
Apple M1 & Ionic: Should I switch?
Apple M1 & Ionic: Should I switch?Apple M1 & Ionic: Should I switch?
Apple M1 & Ionic: Should I switch?Philipp Höhne
 
"Probably, Maybe, No: The State of HTML5 Audio" - Scott Schiller
"Probably, Maybe, No: The State of HTML5 Audio" - Scott Schiller"Probably, Maybe, No: The State of HTML5 Audio" - Scott Schiller
"Probably, Maybe, No: The State of HTML5 Audio" - Scott Schillerscottschiller
 
How To Distribute iPhone Apps to App Store
How To Distribute iPhone Apps to App StoreHow To Distribute iPhone Apps to App Store
How To Distribute iPhone Apps to App StoreEungShik (Henry) Kim
 
Absolute Beginners Guide to iPhone dev
Absolute Beginners Guide to iPhone devAbsolute Beginners Guide to iPhone dev
Absolute Beginners Guide to iPhone devBarry Ezell
 
[COSCUP 2013] Audio Competing
[COSCUP 2013] Audio Competing[COSCUP 2013] Audio Competing
[COSCUP 2013] Audio CompetingAlive Kuo
 
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, PalmBattle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, PalmBess Ho
 
SmartPhone Design and Delivery
SmartPhone Design and DeliverySmartPhone Design and Delivery
SmartPhone Design and DeliveryJason Diehl
 
AbemaTV on tvOS
AbemaTV on tvOSAbemaTV on tvOS
AbemaTV on tvOSYuji Hato
 

Similar to iPlayground: CarPlay and MFI Hearing Aids (20)

Android Audio & OpenSL
Android Audio & OpenSLAndroid Audio & OpenSL
Android Audio & OpenSL
 
Get On The Audiobus (CocoaConf Atlanta, November 2013)
Get On The Audiobus (CocoaConf Atlanta, November 2013)Get On The Audiobus (CocoaConf Atlanta, November 2013)
Get On The Audiobus (CocoaConf Atlanta, November 2013)
 
Get On The Audiobus (CocoaConf Boston, October 2013)
Get On The Audiobus (CocoaConf Boston, October 2013)Get On The Audiobus (CocoaConf Boston, October 2013)
Get On The Audiobus (CocoaConf Boston, October 2013)
 
Inter-process audio options on iOS
Inter-process audio options on iOSInter-process audio options on iOS
Inter-process audio options on iOS
 
What’s Going On with the Adobe® Flash® Platform and why it is still Relevant ...
What’s Going On with the Adobe® Flash® Platform and why it is still Relevant ...What’s Going On with the Adobe® Flash® Platform and why it is still Relevant ...
What’s Going On with the Adobe® Flash® Platform and why it is still Relevant ...
 
iOS development made easy
iOS development made easyiOS development made easy
iOS development made easy
 
MIDI DAW II - Class 3
MIDI DAW II - Class 3MIDI DAW II - Class 3
MIDI DAW II - Class 3
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirst
 
Apple M1 & Ionic: Should I switch?
Apple M1 & Ionic: Should I switch?Apple M1 & Ionic: Should I switch?
Apple M1 & Ionic: Should I switch?
 
"Probably, Maybe, No: The State of HTML5 Audio" - Scott Schiller
"Probably, Maybe, No: The State of HTML5 Audio" - Scott Schiller"Probably, Maybe, No: The State of HTML5 Audio" - Scott Schiller
"Probably, Maybe, No: The State of HTML5 Audio" - Scott Schiller
 
The future is hybrid
The future is hybridThe future is hybrid
The future is hybrid
 
How To Distribute iPhone Apps to App Store
How To Distribute iPhone Apps to App StoreHow To Distribute iPhone Apps to App Store
How To Distribute iPhone Apps to App Store
 
Absolute Beginners Guide to iPhone dev
Absolute Beginners Guide to iPhone devAbsolute Beginners Guide to iPhone dev
Absolute Beginners Guide to iPhone dev
 
[COSCUP 2013] Audio Competing
[COSCUP 2013] Audio Competing[COSCUP 2013] Audio Competing
[COSCUP 2013] Audio Competing
 
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, PalmBattle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
 
SmartPhone Design and Delivery
SmartPhone Design and DeliverySmartPhone Design and Delivery
SmartPhone Design and Delivery
 
iPhone IN YOUR FACE
iPhone IN YOUR FACEiPhone IN YOUR FACE
iPhone IN YOUR FACE
 
Apple
AppleApple
Apple
 
AbemaTV on tvOS
AbemaTV on tvOSAbemaTV on tvOS
AbemaTV on tvOS
 

More from Weizhong Yang

怎樣在 Flutter app 中使用 Google Maps
怎樣在 Flutter app 中使用 Google Maps怎樣在 Flutter app 中使用 Google Maps
怎樣在 Flutter app 中使用 Google MapsWeizhong Yang
 
關於延長役期這件事情
關於延長役期這件事情關於延長役期這件事情
關於延長役期這件事情Weizhong Yang
 
導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事Weizhong Yang
 
CocoaPods private repo
CocoaPods private repoCocoaPods private repo
CocoaPods private repoWeizhong Yang
 
Flutter 踩雷心得
Flutter 踩雷心得Flutter 踩雷心得
Flutter 踩雷心得Weizhong Yang
 
那些年被蘋果 Ban 掉的 API
那些年被蘋果 Ban 掉的 API那些年被蘋果 Ban 掉的 API
那些年被蘋果 Ban 掉的 APIWeizhong Yang
 
給 iOS 工程師的 Flutter 開發
給 iOS 工程師的 Flutter 開發給 iOS 工程師的 Flutter 開發
給 iOS 工程師的 Flutter 開發Weizhong Yang
 
給 iOS 工程師的 Vue.js 開發
給 iOS 工程師的 Vue.js 開發給 iOS 工程師的 Vue.js 開發
給 iOS 工程師的 Vue.js 開發Weizhong Yang
 
苦集滅道:透過開發客製 Sketch Plug-in 改善產品設計流程
苦集滅道:透過開發客製 Sketch Plug-in  改善產品設計流程苦集滅道:透過開發客製 Sketch Plug-in  改善產品設計流程
苦集滅道:透過開發客製 Sketch Plug-in 改善產品設計流程Weizhong Yang
 
使用 switch/case 重構程式碼
使用 switch/case 重構程式碼使用 switch/case 重構程式碼
使用 switch/case 重構程式碼Weizhong Yang
 
怎樣寫出比較沒有問題的 Code
怎樣寫出比較沒有問題的 Code怎樣寫出比較沒有問題的 Code
怎樣寫出比較沒有問題的 CodeWeizhong Yang
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented ProgrammingWeizhong Yang
 
Mac OS X 與 iOS 的 Audio API
Mac OS X 與 iOS 的 Audio APIMac OS X 與 iOS 的 Audio API
Mac OS X 與 iOS 的 Audio APIWeizhong Yang
 
Python 的文件系統
Python 的文件系統Python 的文件系統
Python 的文件系統Weizhong Yang
 

More from Weizhong Yang (20)

Flutter BLE
Flutter BLEFlutter BLE
Flutter BLE
 
怎樣在 Flutter app 中使用 Google Maps
怎樣在 Flutter app 中使用 Google Maps怎樣在 Flutter app 中使用 Google Maps
怎樣在 Flutter app 中使用 Google Maps
 
關於延長役期這件事情
關於延長役期這件事情關於延長役期這件事情
關於延長役期這件事情
 
Dart null safety
Dart null safetyDart null safety
Dart null safety
 
導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事
 
Github Actions
Github ActionsGithub Actions
Github Actions
 
CocoaPods private repo
CocoaPods private repoCocoaPods private repo
CocoaPods private repo
 
Flutter 踩雷心得
Flutter 踩雷心得Flutter 踩雷心得
Flutter 踩雷心得
 
那些年被蘋果 Ban 掉的 API
那些年被蘋果 Ban 掉的 API那些年被蘋果 Ban 掉的 API
那些年被蘋果 Ban 掉的 API
 
給 iOS 工程師的 Flutter 開發
給 iOS 工程師的 Flutter 開發給 iOS 工程師的 Flutter 開發
給 iOS 工程師的 Flutter 開發
 
給 iOS 工程師的 Vue.js 開發
給 iOS 工程師的 Vue.js 開發給 iOS 工程師的 Vue.js 開發
給 iOS 工程師的 Vue.js 開發
 
苦集滅道:透過開發客製 Sketch Plug-in 改善產品設計流程
苦集滅道:透過開發客製 Sketch Plug-in  改善產品設計流程苦集滅道:透過開發客製 Sketch Plug-in  改善產品設計流程
苦集滅道:透過開發客製 Sketch Plug-in 改善產品設計流程
 
使用 switch/case 重構程式碼
使用 switch/case 重構程式碼使用 switch/case 重構程式碼
使用 switch/case 重構程式碼
 
怎樣寫出比較沒有問題的 Code
怎樣寫出比較沒有問題的 Code怎樣寫出比較沒有問題的 Code
怎樣寫出比較沒有問題的 Code
 
貪食蛇
貪食蛇貪食蛇
貪食蛇
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
Mac OS X 與 iOS 的 Audio API
Mac OS X 與 iOS 的 Audio APIMac OS X 與 iOS 的 Audio API
Mac OS X 與 iOS 的 Audio API
 
Html 5 native drag
Html 5 native dragHtml 5 native drag
Html 5 native drag
 
Retina mac
Retina macRetina mac
Retina mac
 
Python 的文件系統
Python 的文件系統Python 的文件系統
Python 的文件系統
 

Recently uploaded

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Recently uploaded (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

iPlayground: CarPlay and MFI Hearing Aids