在iOS项目中,我将AVAudioPlayerNode与AVAudioEngine和AVAudioUnitTimePitch结合使用。一切都很正常。但是,我想知道是否有一种方法可以确定当前播放器的状态(例如,isPlaying、isPaused),或者至少是回放位置。
虽然AVAudioPlayer至少允许您获得currentTime-parameter,但我还不知道如何使用AVAudioPlayerNode获取这些信息。我试着使用用nodeTimeForPlayerTime描述的playerTimeForNodeTime和快捷的文件方法,但没有取得任何进展。
任何帮助都将不胜感激。
发布于 2015-01-17 01:56:58
由于AVAudioPlayerNode是作为音频流设计的,因此它不一定要跟踪特定文件中的时间。然而,AVAudioPlayerNode确实保留了播放所有音频的时间。这个计时器不会用每个文件重置,为了更改它,您必须显式地告诉它要从哪里开始计数。
因此,要找到玩家正在玩的当前时间,您必须执行以下操作:
player.lastRenderTime.sampleTime / file.fileFormat.sampleRate现在,为了让计时器在每个文件之后重置,您必须显式地重置播放机当前的时间。为此,请使用player.playAtTime:函数。
如果您想要一个例子,请查看这里的一个例子:https://github.com/danielmj/AEAudioPlayer
https://stackoverflow.com/questions/27764352
复制相似问题