dma*_*200 5 ios swift avaudioplayernode
我正在使用 AVAudioPlayerNode 在 Swift 中构建多轨音频播放器。当安排音频片段播放时,我希望在安排完成时以及文件播放完成时/如果完成时收到通知。从 Swift API 的编写方式看来,您只能注册其中之一。如果调用短函数:
func scheduleSegment(_ file: AVAudioFile,
startingFrame startFrame: AVAudioFramePosition,
frameCount numberFrames: AVAudioFrameCount,
at when: AVAudioTime?,
completionHandler: AVAudioNodeCompletionHandler? = nil)
Run Code Online (Sandbox Code Playgroud)
一旦文件被安排(不播放,只是安排播放),回调就会被调用,并且您不能传递任何特殊参数,只能传递一个基本的闭包。
当调用更高级的函数时,您可以指定您想要的回调类型,但是您必须选择一个且只能选择一个:
func scheduleSegment(_ file: AVAudioFile,
startingFrame startFrame: AVAudioFramePosition,
frameCount numberFrames: AVAudioFrameCount,
at when: AVAudioTime?,
completionCallbackType callbackType: AVAudioPlayerNodeCompletionCallbackType,
completionHandler: AVAudioPlayerNodeCompletionHandler? = nil)
Run Code Online (Sandbox Code Playgroud)
枚举 AVAudioPlayerNodeCompletionCallbackType 可以是以下之一:dataConsumed、dataRendered 或 dataPlayedBack
不幸的是我必须选择一个,但实际上我需要两个。当安排完成并且数据播放时我需要收到通知。
有没有办法做到这一点?
| 归档时间: |
|
| 查看次数: |
390 次 |
| 最近记录: |