我正在开发一个Android程序,需要以非常精确的时间(音乐程序)重复播放音频文件.
我正在使用"AudioTrack",它正在从WAV样本中加载PCM数据.
这是我正在测试此功能的代码.它只是循环,直到它播放样本的时间,然后播放它,并重复这8次.
这是我正在使用的代码,如果您需要了解更多,请告诉我们:
class Sequencer {
private final double BPM = 120;
private final double BPMS = (BPM / 60 / 1000);
private long QUARTER_NOTE_DELAY = (long)(1/BPMS);
private final int PCM_BYTE_OFFSET = 44;
private long lastTick;
private long now = 0;
private int sampleRate = 8000;
private int channelConfig = AudioFormat.CHANNEL_CONFIGURATION_STEREO;
private int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
private int bufferSize = AudioTrack.getMinBufferSize(sampleRate, channelConfig, audioFormat)*5;
private AudioTrack playbackBuffer = new AudioTrack(AudioManager.STREAM_MUSIC,sampleRate,
channelConfig,audioFormat,bufferSize,AudioTrack.MODE_STATIC);;
private byte[] pcmArray;
public Sequencer()
{
Log.d("AudioTrack", "BUFFER SIZE: …Run Code Online (Sandbox Code Playgroud)