[英]No audio after phone call ends
如何在通話結束后恢復音頻。
這是我的代碼,但它不工作,不知道為什么
@interface MainViewController : UIViewController <InfoDelegate, AVAudioPlayerDelegate>
在m文件中
-(void)audioPlayerBeginInterruption:(AVAudioPlayer *)audioPlayer;
{
}
-(void)audioPlayerEndInterruption:(AVAudioPlayer *)audioPlayer;
{
[self.audioPlayer play];
}
任何想法是什么,它在代碼中做錯了或丟失了。
請幫忙。
根據音頻的停止方式(你調用[self.audioPlayer stop]
?)你可能需要再次調用play
之前調用[self.audioPlayer prepareToPlay]
。
我相信你應該做的是以下幾點:
-(void)audioPlayerBeginInterruption:(AVAudioPlayer *)audioPlayer; { [self.audioPlayer pause]; } -(void)audioPlayerEndInterruption:(AVAudioPlayer *)audioPlayer; { [self.audioPlayer play]; }
根據我的經驗,如果你打電話stop
你那么必須調用prepareToPlay
后,才能調用play
一次。
編輯:
或者,您可能需要直接通過AudioSession處理中斷。
您的應用應初始化AudioSession,如下所示:
AudioSessionInitialize(NULL, NULL, AudioInterruptionListener, NULL);
然后,在@implementation
/ @end
塊之外實現AudioInterruptionListener
,如下所示:
#define kAudioEndInterruption @"AudioEndInterruptionNotification" #define kAudioBeginInterruption @"AudioBeginInterruptionNotification" void AudioInterruptionListener ( void *inClientData, UInt32 inInterruptionState ) { NSString *notificationName = nil; switch (inInterruptionState) { case kAudioSessionEndInterruption: notificationName = kAudioEndInterruption; break; case kAudioSessionBeginInterruption: notificationName = kAudioBeginInterruption; break; default: break; } if (notificationName) { NSNotification *notice = [NSNotification notificationWithName:notificationName object:nil]; [[NSNotificationCenter defaultCenter] postNotification:notice]; } }
回到Objective-C,您需要監聽此代碼可能發布的通知,如下所示:
// Listen for audio interruption begin/end [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(beginAudioInterruption:) name:kAudioBeginInterruption object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(endAudioInterruption:) name:kAudioEndInterruption object:nil];
和:
-(void)beginAudioInterruption:(id)context { [self.audioPlayer pause]; } -(void)endAudioInterruption:(id)context { [self.audioPlayer play]; }
給那個旋轉。 :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.