2014-10-16 54 views
0

我有一個voip應用程序和來電我重定向到一個單獨的視圖,用戶可以接受或拒絕通話。我想在這個觀點,所以我加載聲音文件中的聲音進行播放:爲什麼我的聲音音量下降?

NSString *ringtoneSoundPath = [[NSBundle mainBundle] pathForResource:@"ringtone" ofType:@"wav"]; 
NSURL *ringtoneSoundUrl = [NSURL fileURLWithPath:ringtoneSoundPath]; 
ringtone = [[AVAudioPlayer alloc] initWithContentsOfURL:ringtoneSoundUrl error:nil]; 
ringtone.numberOfLoops = -1; 

,然後在我想要播放的聲音視圖控制器我有以下方法:

- (void)viewWillAppear:(BOOL)animated { 
    [ringtone play]; 
} 

- (void)viewWillDisappear:(BOOL)animated { 
    [ringtone stop]; 
} 

這有效,但是當通話結束,我再次打電話時,聲音的音量突然很低。我檢查了設備的音量設置,但仍然是最大。爲什麼在停止聲音並再次播放時音量會下降?它沒有重複,所以第三次,它和第二次一樣低。

+0

使用[audioPlayer setVolume:1.0];同時播放聲音。 – ASHISHT 2014-10-16 12:13:06

+0

@ASHISHT這使聲音根本不起作用 – Kevin 2014-10-16 12:41:41

回答

0

我們有類似的問題。如果您有voip應用程序,則意味着您在AVAudioSession中使用setCategory:。 所以,你有這樣的代碼:

AVAudioSession *aSession = [AVAudioSession sharedInstance]; 
if ([aSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil]) { 
    [aSession setMode:AVAudioSessionModeVoiceChat error:nil]; 
    [aSession setActive: YES error:nil]; 
} 

但是當你使用AVAudioSessionCategoryPlayAndRecord體積變低。

所以,在rington玩你應該設置例如爲:

if ([aSession setCategory:AVAudioSessionCategoryPlayback error:nil]) { 
    [aSession setMode:AVAudioSessionModeDefault error:nil]; 
    [aSession setActive:YES error:nil]; 
} 

希望這有助於