0

私はARCを有効にしてiOS 5を使用しています。ビューをタップすると、特定のビューに関連付けられた録音を再生しています。ユーザーがビューを変更すると、再生が停止します。 NSNotificationを使って-stopPlaybackメソッドを呼び出すとうまくいきます。問題は、ユーザーが元のビューに戻ってタップすると、録画が途切れたところで続行されることです。 ARCでiOS 5 AVAudioPlayer - ARCを有効にすると、再生を適切に停止するにはどうすればよいですか?

無効に私は次のコードを使用することができます:ARCは[audioPlayerリリース]許可していないので、私はbeginning.Iから再生をリセットすることはできません

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

を[audioPlayer解除]を削除およびaudioPlayer = nil; ARCがそれを処理し、その結果が以前の停止後に中断したところで録音を再生するためです。私は、再生が起きたときに最初から録音を再開する方法について、アップルの良い例やドキュメントを見ていません。何が最善の方法を進めるのですか?

答えて

0

これは私が思いついたのソリューションです:

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

記録は今に関係なく、それが停止した時に最初から再生しません。 [audioPlayer stop]の代わりに[audioPlayer pause]を使ってみましたが、最初の一時停止後に再生が再開されませんでした。同様のことが、 '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

関連する問題