簡體   English   中英

在用戶指定的時間從AKPlayer獲取回調

[英]Get a callback from AKPlayer at a user specified time

我試圖在 AKPlayer 的文件播放中的給定點獲得回調(當前,就在結束之前)。 我在addBoundaryTimeObserver()上看到了 Apple 文檔,它可以工作,但似乎無法從 AKPlayer 訪問(我猜是 AVAudioPlayerNode 與 AVPlayer 的事情)。 有什么建議么? 我在 AVAudioPlayerNode 中看到了一些回調......也許我可以根據所需的時間確定緩沖區並使用dataConsumed

目標是在文件播放完畢之前觸發另一個事件(完成時有一個回調,但顯然為時已晚)。

如果有人做過類似的事情,或者知道類似的事情(要點等),那就太好了。

有一個名為AKPlaygroundLoop的 AudioKit 游樂場,它向您展示如何基於CADisplayLink定期調用任意處理程序。 在您的處理程序中,您可以檢查 AKPlayer 的currentTime ,如果它接近尾聲(比如 1 秒前),您可以觸發您想要的任何事件。

這是一個粗略的大綱:

var player: AKPlayer!
var loop: AKPlaygroundLoop!

func play() {
    // ...
    playgroundLoop = AKPlaygroundLoop(frequency: 10.0, handler: myHandler)
}

func myHandler() {
    if player.currentTime >= player.duration - 1.0 {
        // trigger some event
    }
}

另請參閱此答案以獲取有關如何與 AudioKit 同步事件的建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM