提问人:zak 提问时间:8/29/2023 更新时间:8/29/2023 访问量:21
AVAudioPlayerNode 使用 scheduleFile(不是 scheduleSegment)跳过播放
AVAudioPlayerNode skip play with scheduleFile (not scheduleSegment)
问:
我有一种情况,我需要按顺序安排多个文件。我通过多次调用 scheduleFile 来做到这一点:
let node = AVAudioPlayerNode()
node.scheduleFile(theAudioFile1!, at: nil)
node.scheduleFile(theAudioFile2!, at: nil)
node.scheduleFile(theAudioFile3!, at: nil)
node.scheduleFile(theAudioFile4!, at: nil)
这适用于播放,所有四个文件都按顺序播放。但是,我需要添加一个“跳过”功能,按下按钮会将播放向前跳过 15 秒。我知道如何使用 scheduleSegment(如果我使用 scheduleSegment 来初始设置节点,而不是 scheduleFile),即:
node.scheduleSegment(theAudioFile!, startingFrame: theFramePostion, frameCount: AVAudioFrameCount(theAudioFile!.length), at: nil)
而 “theFramePosition” 是通过向 node.lastRenderTime 添加 15 秒来计算的
但是当我使用 scheduleFile 而不是 scheduleSegment 按顺序播放多个文件时,我不知道该怎么做。
我可以合并所有四个文件,然后使用该组合文件使用 scheduleSegment,但我不想这样做,因为合并文件需要很长时间。
有人可以提出解决方案吗?将不胜感激。
答: 暂无答案
评论