2012-05-07 8 views
1

AVAudioPlayerと早送り、早送りの機能を実装しています。ジェスチャー、画像、グロー効果の2つのボタンを作った。現在、早送りのときにタブを押すと、ボタンをまだ押していても、最初に再生アイテムを10秒間転送してから通常と同じように再生します。私はそれをIphone/Ipodの標準アプリのように正確に実装したいと思います。AVAudioPlayerの早送りと早送り

+0

ためYESを返す場合1.0範囲 -

EDITAVPlayerrateプロパティは0.0外の値をサポートAVAudioPlayer.currentTime pを使用しましたか?ロパティ? –

答えて

4

代わりにAVPlayerを使用し、タッチダウン時にレートプロパティを変更することができます。 巻き戻しの場合は-2に、早送りの場合は2に変更します。 そして、内側/外側のタッチアップでレートを1に戻してください。

関連プレイヤ項目がAVPlayerItem特性canPlaySlowForward又はcanPlayFastForward

https://developer.apple.com/documentation/avfoundation/avplayer/1388846-rate

+0

'AVPlayer'の' rate'プロパティは、倍速再生では0.5から倍速再生で2.0までの値しか許されません。したがって、あなたのソリューションは早送りには最適ですが、巻き戻しには適していません。巻き戻しサポートのために 'currentTime'を設定する' NSTimer'を使わなければなりません。 –

+0

@StefanArnサンプルコードはありますか? –

+0

@JenelEjercitoMyersそれは簡単です。巻き戻しには使えない 'rate'プロパティの代わりに、' [self.audioPlayer setCurrentTime:(self.audioPlayer.currentTime - 1.0f)]; 'のように直接トラックの時間を設定するだけですユーザーは巻き戻しボタンを長時間押すことができ、常に 'setCurrentTime'を何度も呼び出すだけで巻き戻すことができます。 1つの解決策は 'NSTimer'を開始することです。これはユーザーが巻き戻しボタンを押している間、これを行います。' [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(rewind :) userInfo:nil repeats:YES]; ' –

関連する問題