在開發應用時,有時想給應用加上一下聲音,比如按鍵音,下拉式功能表音等等,或者增加震動。對於這些短時間的聲音還有震動,用System Sound Services來實現播放是最方便的。
下面進入主題。
Step 1:總體瞭解
1)所需的Framework:AudioToolbox.framework
2) 相關文檔:Multimedia Programming Guide
Step 2: 使用方法
1) 建立 SystemSoundID 對象
NSString *path = [[NSBundlemainBundle]pathForResource:@"win"
ofType:@"wav"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID(
(__bridgeCFURLRef)[NSURLfileURLWithPath:path], &soundID);
2)播放音頻
AudioServicesPlayAlertSound(soundID); //播放音頻加震動
AudioServicesPlaySystemSound(soundID); //僅播放音頻
Step 3: 關鍵點剖析
1)僅播放震動
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
2)關於__bridge
Apple 通過 Core Foundation framework 提供了很多常用組件比如URL,array,string等C語言的介面,這可以讓開發人員可以直接編寫C語言的代碼來實現相關的功能而無需用Objective-C。所以如上面看到的CFURLRef在功能上等同於NSURL的指標。那麼從iOS5開始,在使用ARC的情況下,開發人員通過在特定的名稱前面加上__bridge來提示編譯器要將一個Objective-C的對象傳遞給一個C API下的對象。就是這樣。