0

我在啓用ARC的情況下使用iOS 5。點擊視圖時,我正在播放與特定視圖關聯的錄製內容。當用戶改變視圖時,播放停止。我使用NSNotification來調用工作正常的-stopPlayback方法。問題是,當用戶返回到原始視圖並點擊它時,它會繼續錄製停止的地方。iOS 5 AVAudioPlayer - 啓用ARC後,如何正確停止播放?

在禁用我可以用下面的代碼ARC:

-stopPlayback 
{ 
if([audioPlayer isPlaying]) 
{ 
[audioPlayer stop]; 
[audioPlayer release]; 
audioPlayer = nil; 
} 
} 

由於ARC不允許[audioPlayer釋放],我不能從beginning.I除去[audioPlayer釋放]重置重放和audioPlayer = nil;因爲ARC會處理它,結果是錄音播放停止後停止播放。我沒有看到Apple提供的關於如何在播放時從頭開始重新錄製的很好的示例或文檔。最好的方法是什麼?

回答

0

這是我想出瞭解決方案:

-stopPlayback{ 
if([audioPlayer isPlaying]) 
{ 
    [audioPlayer stop]; 
    audioPlayer.currentTime=0; 
} 
} 

的記錄,從現在開始重播無論何時它被停止。 我嘗試使用[audioPlayer暫停]而不是[audioPlayer stop]導致播放在初始暫停後不再播放。當我添加'audioPlayer = nil; (儘管我沒有記錄確切的組合)。作爲響應的一部分發布的相關問題的確使用currentTime = 0,但其餘代碼不符合我的需求。任何人都可以看到爲什麼這不起作用?任何進一步的意見讚賞

0

你仍然需要設置nil

if([audioPlayer isPlaying]) 
{ 
    [audioPlayer stop]; 
    audioPlayer = nil; 
} 
+0

謝謝。我在我的代碼中更新了它。從頭開始重新開始播放怎麼樣? – J1NX3D

+0

currentTime呢?如果我添加'audioPlayer.currentTime = 0;'是否會重新開始播放? – J1NX3D

+0

如果你想要的只是重新啓動播放器,那麼你不需要釋放它。看到[這個問題](http://stackoverflow.com/questions/1161148/avaudioplayer-resetting-currently-playing-sound-and-playing-it-from-beginning)。 – DarkDust

相關問題