2015-03-08 42 views
-1

我有一個音頻播放器,可播放從Core Date檢索到的音頻。玩&暫停工作正常。我試圖實現一個「跳轉30秒」按鈕,並尋找關於我如何去做的任何指示。音頻 - 跳轉前進30秒

代碼爲我的 '播放/暫停' 按鈕

@IBAction func playPressed(sender: AnyObject) { 

    let play = UIImage(named: "play") 
    let pause = UIImage(named: "pause") 
    if audioPlayer.playing { 
     pauseAudioPlayer() 
     audioPlayer.playing ? "\(playButton.setImage(pause, forState: UIControlState.Normal))" : "\(playButton.setImage(play , forState: UIControlState.Normal))" 

    }else{ 
     playAudio() 
     audioPlayer.playing ? "\(playButton.setImage(pause, forState: UIControlState.Normal))" : "\(playButton.setImage(play , forState: UIControlState.Normal))" 
    } 

} 
+0

你見過這樣的職位? https://stackoverflow.com/a/38658769/464016 – Lepidopteron 2017-10-17 13:05:28

+0

可能重複的[AVPlayer seekToTime不能播放正確的位置](https://stackoverflow.com/questions/11462843/avplayer-seektotime-does-not-play-在正確的位置) – Lepidopteron 2017-10-17 13:05:41

回答

1

怎麼這樣呢?

@IBAction func skipForward30SecondsPressed(sender: AnyObject) { 

    var currentTime = audioPlayer.currentTime 

    audioPlayer.stop() 

    audioPlayer.playAtTime(currentTime + 30.0) // plus 30 seconds 
} 
1

對於iOS我們需要使用CMTime。只有CMTime可以饋送給玩家,以便從當前位置向前或向後跳轉。現在,如果玩家正在運行任何流,則當前流位置可以使用玩家的currentTime屬性。

祝你好運。如果您對此有任何疑問,請告訴我。

1

獲取玩家的當前時間,並加上當前時間的30秒。然後讓玩家在當前時間(當前時間+30)播放。

var currentTime = player.currentTime 
player.playAtTime(currentTime + 30.0) 

如果您想使用滑塊以更改currentTime的,你可以使用player.currentTime = TimeInterval(slider.value) * player.duration得到它。

1

SWIFT 3

player.play() 
player.currentTime=60 

單位爲秒 不需要停止所有

+0

這應該是正確的答案,謝謝。 – SalokinSwift 2017-11-06 21:24:22

+1

這是這裏唯一正確的答案。 'player.play(atTime:...)'將播放延遲一段時間。向前跳30秒,只需執行'player.currentTime + = 30' – 2018-03-01 05:07:53