需求:
蘋果端蹂析,需要在播放音頻時(shí)(無論是前臺(tái)還是后臺(tái))舔示,來了電話,暫停音頻电抚,電話掛斷以后惕稻,音頻繼續(xù)播放。
實(shí)現(xiàn):(在delegate.m中)
在didFinishLaunchingWithOptions方法中寫如下語句
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
AudioSessionInitialize(NULL, NULL, interruptionListenner, (__bridge void*)self);
…………………………
}
然后在delegate.m中添加如下方法
void interruptionListenner(void* inClientData, UInt32 inInterruptionState)
{
NewsDetailController *newsDetailVC = [NewsDetailController sharedMp3Player];
AppDelegate* pTHIS = (__bridge AppDelegate*)inClientData;
if (pTHIS) {
NSLog(@"interruptionListenner %u", (unsigned int)inInterruptionState);
if (kAudioSessionBeginInterruption == inInterruptionState) {//來電話了(按照個(gè)人音頻需求進(jìn)行處理蝙叛,我的是暫停播放)
NSLog(@"Begin interruption");
if ([newsDetailVC isPlaying]) {//如果當(dāng)前mp3處于播放狀態(tài)
[newsDetailVC playButtonPressed:newsDetailVC.playBtn];//暫停播放
}
}
else {//掛了電話(按照個(gè)人音頻需求進(jìn)行處理俺祠,我的是繼續(xù)播放)
NSLog(@"Begin end interruption");
if (![newsDetailVC isPlaying]) {//如果當(dāng)前mp3處于暫停狀態(tài)
[newsDetailVC playButtonPressed:newsDetailVC.playBtn];//繼續(xù)播放
}
NSLog(@"End end interruption");
}
}
}
在此記錄,以便以后查看甥温,也可讓更多需要此需求的人得到解答锻煌。
——凡幾多