我有一個ios應用程序,它在移動到後臺時繼續播放音樂。現在,如果有電話回答與否,應用程序不會繼續播放音樂。 兩天來,我一直在這裏閱讀有關這個問題的帖子。沒有一個解決了我的問題。恢復通話後在後臺運行的應用程序ios
我在使用AVQueuePlayer對象時,也會在需要時流式播放我的音樂。 現在委託方法已被棄用,因爲ios6。所以我使用Notications。
令人驚奇的是,中斷結束(電話呼叫結束)的通知,播放音樂也是寫代碼,但應用程序強制犯規播放音樂,直到它涉及到前臺(與另一個通知)
這裏是我的代碼
-(void)viewWillAppear
{.....
........
.....
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(audioInterruptionNotification:) name:AVAudioSessionInterruptionNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(audioInterruptionNotification:) name:UIApplicationDidBecomeActiveNotification object:nil]
}
-(void)audioInterruptionNotification:(NSNotification *) aNotification {
NSLog(@"Interrupt %@", aNotification);
NSDictionary *dict = [aNotification userInfo];
NSUInteger typeKey = [[dict objectForKey:@"AVAudioSessionInterruptionTypeKey"] unsignedIntegerValue]; NSLog(@"%d", typeKey);
if (typeKey == 0)
{
[avPlayer play];
NSLog(@"1.......");
}
else if (typeKey == 1)
{
[avPlayer play];
NSLog(@"3...............");
;
}
}
而且,我已經試圖通過調度隊列引起的延遲。 委託方法似乎不起作用。 但是gaana,saavn和蘋果的官方音樂應用程序在通話後恢復。所以這是可能的。 我似乎錯過了某些東西。 如果我使用核心電話。我將不得不添加整個框架,這將增加應用程序的大小。 如果這是唯一的方式,請告訴我們如何。
謝謝,我真的很感激你的時間。
你使用過'UIApplicationWillEnterForegroundNotification'嗎?請參閱https://developer.apple.com/library/ios/documentation/uikit/reference/UIApplication_Class/Reference/Reference.html#//apple_ref/c/data/UIApplicationWillEnterForegroundNotification –
爲什麼前景通知會被解僱?我的應用程序從非活動狀態轉換爲背景狀不過謝謝你。 –