2012-03-23 330 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