有finch播放完成回調嗎?類似於 - audioPlayerDidFinishPlaying在avaudioplayer的東西?通過代碼看我找不到任何引用它的東西。完成與finch播放音頻回撥
0
A
回答
1
在Finch中沒有這樣的回調,因爲OpenAL不支持它。 (或者至少它不支持它,當我上次看)。你可以假像這樣:
- (void) playSoundWithCallback {
[someSound play];
[someDelegate performSelector:@selector(soundDidFinishPlaying:)
withObject:someSound afterDelay:someSound.duration];
}
我沒有嘗試,但它是一個簡單的代碼,它應該工作的罰款。那麼...至少直到你開始搞亂球場,因此聲速:) :)
0
@zoul:我知道這是一個vey遲到的回覆。但我注意到答案是不正確的。如果我暫停聲音或系統中斷,該怎麼辦?在這種情況下,即使聲音尚未完成,您也會收到回電。請閱讀openAL規範中的「4.3.6。管理源代碼執行」一節,瞭解正確的處理方法。
0
如果你不關心中斷,那麼這裏有一個修補程序。
OpenAL更改音高不是1.0時播放聲音的播放長度。 (似乎不可能從OpenAL查詢這個新長度, ,因爲AL參數返回與之前相同的值)
間距範圍從0.5到2.0f。所以,如果我們假設0.5間距正好是兩倍長, 和間距在2.0 exacty一半長,我們應該能夠用瀝青爲乘數:
- (void) playSoundWithCallback {
[someSound play];
[someDelegate performSelector:@selector(soundDidFinishPlaying:)
withObject:someSound afterDelay: someSound.duration * (1.0/someSound.pitch) ];
}
相關問題
- 1. 如何播放音頻先完成音頻文件,然後開始播放?
- 2. 確定OpenAL何時使用回調完成播放音頻
- 3. 從回撥的移動設備播放HTML5音頻
- 4. 音頻播放期間在特定時間回撥
- 5. 播放音頻時點擊按鈕和聲音播放完成後重定向
- 6. 如何在openAL或Finch中播放特定聲音時控制播放音量?
- 7. AVPlayerItemDidPlayToEndTimeNotification音頻播放完畢後,不叫
- 8. Android NDK音頻回撥
- 9. HTML5:播放音頻
- 10. ActionScript播放音頻
- 11. Android音頻播放
- 12. 播放音頻流
- 13. MIDlet音頻播放噪音
- 14. iOS 8 Swift音頻播放執行方法完成
- 15. 如何知道HTML5音頻元素何時完成播放?
- 16. 如何檢查音頻文件已完成在Android中播放
- 17. 在WPF中播放音頻並重復完成
- 18. 活動轉換完成後播放音頻
- 19. html5音頻播放器閃回fallback
- 20. 音頻播放器在iPhone中播放遠程音頻文件?
- 21. 下載完成後播放聲音
- 22. 一次播放音頻音頻文件
- 23. 解碼音頻/音頻播放(AS3)
- 24. 播放無音頻標籤的音頻
- 25. 音頻播放器:不斷播放
- 26. 音頻播放工具箱只播放
- 27. 通過電話撥打iOS音頻播放
- 28. 播放多種音頻文件與howlerjs
- 29. 播放音頻與jQuery Mobile的
- 30. 音頻播放器與列表視圖
我沒有挖過深成Finch/OpenAL,但是可能有一種方法可以查詢聲音是否在播放?這會稍微複雜一點,但即使球場正在改變也會起作用。 – Adam 2010-10-16 19:47:10