想问下使用Audioqueue播放本地音频文件时怎样拖动其播放进度?
PS:不是用系统自带的播放控件(比如avplayer,avaudioplayer,musicplayercontroller等等),而是用audioqueue自己实现。
想问下使用Audioqueue播放本地音频文件时怎样拖动其播放进度?
PS:不是用系统自带的播放控件(比如avplayer,avaudioplayer,musicplayercontroller等等),而是用audioqueue自己实现。
使用 AudioQueue 播放本地音频文件并拖动播放进度可以使用 AudioQueueSetProperty 函数来设置 kAudioQueueProperty_CurrentPlayTime 属性,该属性表示当前播放时间。需要注意的是,在设置当前播放时间之前,需要先停止播放 (使用 AudioQueueStop 函数),然后再设置当前播放时间并重新开始播放 (使用 AudioQueueStart 函数)。
示例代码如下:
AudioQueueStop(queue, true);
AudioTimeStamp timeStamp;
timeStamp.mSampleTime = newPlayTime * sampleRate;
AudioQueueSetProperty(queue, kAudioQueueProperty_CurrentPlayTime, &timeStamp, sizeof(timeStamp));
AudioQueueStart(queue, nil);
其中,queue 是创建的 AudioQueue 对象,newPlayTime 是新的播放时间 (以秒为单位),sampleRate 是音频文件的采样率。