在Android中,
Audio
Track.getPlaybackHeadP
os
ition()方法返回的是当前播放的
音频
帧的位置。如果该方法总是返回0,可能有几个原因导致:
播放
音频
时未正确初始化
Audio
Track对象。
音频
数据未正确写入到
Audio
Track对象。
使用了错误的
音频
格式或参数。
以下是一个示例代码,演示如何正确使用
Audio
Track对象并获取播放位置:
int bufferSize = AudioTrack.getMinBufferSize(sampleRate, channelConfig, audioFormat);
AudioTrack audioTrack = new AudioTrack(streamType, sampleRate, channelConfig, audioFormat, bufferSize, mode);
// 初始化AudioTrack对象
audioTrack.play();
// 写入音频数据
byte[] audioData = new byte[bufferSize];
audioTrack.write(audioData, 0, audioData.length);
// 获取播放位置
int playbackPosition = audioTrack.getPlaybackHeadPosition();