2012-03-23 61 views
0

當收到/接聽來電時,我需要停止在我的應用中播放音樂。我正在使用MPMoviePlayerController進行在線流式傳輸。他們是否有任何方式來控制來電事件?當iPhone收到來電時停止播放音樂?

+0

一旦你收到一個打電話給你的應用程序會自動進入後臺狀態,你委託的applicationDidEnterBackground:方法有大約5秒完成任何任務並返回。所以你可以停止在那裏播放音樂 – Bala 2012-03-23 06:36:24

+0

@bala呀,這是可以欣賞的,但問題是我的應用程序也運行在後臺模式,因爲它是一個在線廣播應用程序。如果有任何呼叫收到,它應該在後臺模式下停止播放音樂。 – 2012-03-26 05:07:30

回答

3

使用以下通知來查找通話狀態,並且您可以停止播放器。添加CoreTelephony.framework

#import <CoreTelephony/CTCall.h> 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callReceived:) name:CTCallStateIncoming object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callEnded:) name:CTCallStateDisconnected object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callConnected:) name:CTCallStateConnected object:nil]; 
+0

謝謝你的回放,我在添加框架CoreTelephony.framework – 2012-03-26 05:09:43

+0

tanq爲你的回放後使用了這個代碼,我在導入CoreTelephony.framework之後使用了這個代碼CTCallCenter * callCenter = [[CTCallCenter alloc] init]; callCenter.callEventHandler = ^(CTCall * call) { else if(call.callState == CTCallStateConnected) { [player pause]; // NSLog(@「Call just just been connected」); } 否則如果(call.callState == CTCallStateIncoming) { [播放器暫停]; } else { } }; 這項工作? – 2012-03-26 05:25:52

+0

我在哪裏放這個通知代碼,appDelegate類? – 2012-03-26 06:05:27

相關問題