2010-07-06 46 views
4

我試圖檢測來自麥克風的輸入,並播放可以打開或關閉的聲音,但總是在麥克風監聽器處於活動狀態時播放。與iPhone SDK同時播放和錄製聲音?

我初始化我AVAudioSession在viewDidLoad方法,像這樣:

AVAudioSession *session = [AVAudioSession sharedInstance]; 
NSError *err = nil; 
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&err]; 
[session setActive:YES error:&err]; 

然後設置要播放一個本應了聲:

NSURL *activeUrl = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audio_file.caf", [[NSBundle mainBundle] resourcePath]]]; 
activePlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:activeUrl error:nil]; 
activePlayer.numberOfLoops = -1; 
activePlayer.currentTime = 0; 
activePlayer.volume = -1.5; 

而且我使用的SCListener類做錄音。當我在手機上運行它時,錄音機工作得很好,但即使我在viewDidLoad方法中調用播放器時,聲音也不會循環播放。

任何想法?

回答

0

我對你有類似的問題 - 代碼在模擬器上工作,但不在設備上。我使用Cocos2D(Denshion)和AVAudioRecorder & AVAudioPlayer來解決這個問題。

主要問題似乎是AVAudioRecorder和AVAudioPlayer代表您設置了AVAudioSessionCategory,但是如果您自己操縱它,他們似乎記得您正在「自我管理」並停止爲您進行管理。

查看this blog post幫助我(儘管我自己還沒有解決這個問題;當我解決這個問題時我會更新這個帖子)。

+0

是你能解決問題 – madLokesh 2013-12-18 13:24:58