2012-05-07 32 views
1

我實現AVAudioPlayer和快退,快進功能。我做了兩個按鈕,包括手勢,圖像和發光效果。目前,當我快進時,即使我仍然按下按鈕,它最初會將播放項目轉發到10秒,然後按照與正常播放相同的方式進行播放。我想要像Iphone/Ipod標準應用程序一樣實施它。快退和快進在AVAudioPlayer

+0

你有沒有使用AVAudioPlayer.currentTime p roperty ??? –

回答

4

您可以使用AVPlayer來代替,而變化的速度特性上的觸摸下來。 將其更改爲-2用於快退,2用於快進。 並且記得在內部/外部觸摸時將速率更改回1。

EDITAVPlayerrate屬性支持0.0以外的值 - 1.0範圍IF

該相關聯的玩家項爲AVPlayerItem屬性canPlaySlowForward返回YES或canPlayFastForward

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

+0

'AVPlayer'的'rate'屬性只允許半速播放的0.5到2.0倍播放的值。因此,您的解決方案適用於快進,但不適合倒帶。你必須使用'NSTimer'來爲後退支持設置'currentTime'。 –

+0

@StefanArn你有任何示例代碼? –

+0

@JenelEjercitoMyers這很簡單。你可以直接設置曲目的時間,就像'[self.audioPlayer setCurrentTime:(self.audioPlayer.currentTime - 1.0f)];'如果你想要用戶可以長時間按下快退按鈕並不斷回放,只需一次又一次調用'setCurrentTime'。一個解決方案就是啓動一個'NSTimer',只要用戶按下後退按鈕就可以這樣做[NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(rewind :) userInfo:nil repeatats:YES];' –