有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. 播放音頻
- 7. 如何在openAL或Finch中播放特定聲音時控制播放音量?
- 8. AVPlayerItemDidPlayToEndTimeNotification音頻播放完畢後,不叫
- 9. React - 完全加載時播放音頻
- 10. 通知一次的音頻播放完
- 11. Android NDK音頻回撥
- 12. 播放音頻流
- 13. Android音頻播放
- 14. HTML5:播放音頻
- 15. 播放音頻onclick
- 16. ActionScript播放音頻
- 17. HTML5 - 播放音頻
- 18. MIDlet音頻播放噪音
- 19. 任何HTML5音頻錄音機(與音頻播放器一起)
- 20. 如何知道HTML5音頻元素何時完成播放?
- 21. 在WPF中播放音頻並重復完成
- 22. iOS 8 Swift音頻播放執行方法完成
- 23. 如何檢查音頻文件已完成在Android中播放
- 24. 如何在音頻播放完成後觸發JQuery事件HTML5
- 25. vkontakte.ru中的音頻播放器如何完成
- 26. 活動轉換完成後播放音頻
- 27. 播放的NSData成音頻格式IOS
- 28. Beats Music API返回m3u8音頻播放?
- 29. html5音頻播放器閃回fallback
- 30. 音頻播放器在iPhone中播放遠程音頻文件?
我沒有挖過深成Finch/OpenAL,但是可能有一種方法可以查詢聲音是否在播放?這會稍微複雜一點,但即使球場正在改變也會起作用。 – Adam 2010-10-16 19:47:10