iOS 音視頻開發(fā)(七)AudioToolbox音效播放

文章規(guī)劃

iOS 音視頻開發(fā)(一)常用音視頻框架介紹

iOS 音視頻開發(fā)(二)AVAudioRecorder實現(xiàn)錄音功能

iOS 音視頻開發(fā)(三)MediaPlayer播放本地有巧、遠程音頻

iOS 音視頻開發(fā)(四)MediaPlayer播放本地课幕、遠程視頻

iOS 音視頻開發(fā)(五)AVAudioPlayer/AVPlayer播放本地、遠程音頻

iOS 音視頻開發(fā)(六)AVPlayer播放本地宪肖、遠程視頻

iOS 音視頻開發(fā)(七)AudioToolbox音效播放(本篇)

在iOS中音頻播放從形式上可以分為音效播放和音樂播放疯搅。前者主要指的是一些短音頻播放濒生,通常作為點綴音頻,對于這類音頻不需要進行進度幔欧、循環(huán)等控制罪治。后者指的是一些較長的音頻,通常是主音頻礁蔗,對于這些音頻的播放通常需要進行精確的控制觉义。

音效播放

AudioToolbox 是一套基于C語言的框架,使用它來播放音效其本質(zhì)是將短音頻注冊到系統(tǒng)聲音服務(System Sound Service)浴井。System Sound Service是一種簡單晒骇、底層的聲音播放服務。

但是它本身也存在著一些限制:

1磺浙、音頻播放時間不能超過30s

2洪囤、數(shù)據(jù)必須是PCM或者IMA4格式

3、音頻文件必須打包成.caf撕氧、.aif瘤缩、.wav中的一種(注意這是官方文檔的說法,實際測試發(fā)現(xiàn)一些.mp3也可以播放)

使用步驟如下:

1伦泥、調(diào)用AudioServicesCreateSystemSoundID(???CFURLRef??inFileURL, SystemSoundID*???outSystemSoundID)函數(shù)獲得系統(tǒng)聲音ID剥啤。

2、如果需要監(jiān)聽播放完成操作不脯,則使用AudioServicesAddSystemSoundCompletion(??SystemSoundID inSystemSoundID,

3铐殃、CFRunLoopRef??inRunLoop, CFStringRef??inRunLoopMode, AudioServicesSystemSoundCompletionProc??inCompletionRoutine, void*??inClientData)方法注冊回調(diào)函數(shù)。

4跨新、調(diào)用AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID) 或者AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID) 方法播放音效(后者帶有震動效果)富腊。

主要類

1:AudioServicesCreateSystemSoundID

2:AudioServicesPlaySystemSound

主要代碼(Demo地址

- (IBAction)playLocalMusic:(id)sender {

? [self playSoundEffect:@"beep.wav"];

}

// 播放完成回調(diào)函數(shù)

void soundCompleteCallback(SystemSoundIDsoundID,void* clientData) {

? NSLog(@"播放完成...");

}

- (void)playSoundEffect:(NSString*)name {

? NSString *audioFile = [[NSBundle mainBundle] pathForResource:name ofType:nil];

? NSURL*fileUrl = [NSURLfileURLWithPath:audioFile];

? //1.獲得系統(tǒng)聲音ID

? SystemSoundID soundID=0;

? AudioServicesCreateSystemSoundID((__bridge CFURLRef)(fileUrl), &soundID);

? //如果需要在播放完之后執(zhí)行某些操作,可以調(diào)用如下方法注冊一個播放完成回調(diào)函數(shù)

? AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, soundCompleteCallback, NULL);

? AudioServicesPlaySystemSound(soundID);//2.播放音效

? AudioServicesPlayAlertSound(soundID);//播放音效并震動

}

上一篇:iOS 音視頻開發(fā)(六)AVPlayer播放本地域帐、遠程視頻

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赘被,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子肖揣,更是在濱河造成了極大的恐慌民假,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件龙优,死亡現(xiàn)場離奇詭異羊异,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門野舶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來易迹,“玉大人,你說我怎么就攤上這事平道《糜” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵一屋,是天一觀的道長窘疮。 經(jīng)常有香客問我,道長冀墨,這世上最難降的妖魔是什么闸衫? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮诽嘉,結(jié)果婚禮上蔚出,老公的妹妹穿的比我還像新娘。我一直安慰自己含懊,他們只是感情好,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布衅胀。 她就那樣靜靜地躺著岔乔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪滚躯。 梳的紋絲不亂的頭發(fā)上雏门,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音掸掏,去河邊找鬼茁影。 笑死,一個胖子當著我的面吹牛丧凤,可吹牛的內(nèi)容都是我干的募闲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼愿待,長吁一口氣:“原來是場噩夢啊……” “哼浩螺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起仍侥,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤要出,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后农渊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體患蹂,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了传于。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片囱挑。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖格了,靈堂內(nèi)的尸體忽然破棺而出看铆,到底是詐尸還是另有隱情,我是刑警寧澤盛末,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布弹惦,位于F島的核電站,受9級特大地震影響悄但,放射性物質(zhì)發(fā)生泄漏棠隐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一檐嚣、第九天 我趴在偏房一處隱蔽的房頂上張望助泽。 院中可真熱鬧,春花似錦嚎京、人聲如沸嗡贺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诫睬。三九已至,卻和暖如春帕涌,著一層夾襖步出監(jiān)牢的瞬間摄凡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工蚓曼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留亲澡,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓纫版,卻偏偏與公主長得像床绪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子其弊,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354