Подсчет сэмплов, сыгранных с помощью SuperpoweredAdvancedAudioPlayer
Я использую SuperpoweredAdvancedAudioPlayer
класс для воспроизведения потенциально очень большого аудиофайла, кодировка которого варьируется (разные битрейты, частоты дискретизации, даже кодеки). Мне нужно иметь возможность синхронизировать воспроизведение этого файла с другим файлом на уровне семпла.
Я хотел бы знать, сколько семплов было скопировано в аудио-буфер для каждого SuperpoweredAdvancedAudioPlayer::Process
позвонить, но до сих пор можно найти только приближение, позвонив SuperpoweredAdvancedAudioPlayer::lastProcessMs() * SuperpoweredAdvancedAudioPlayer::sampleRate
,
Я предполагаю, что аппроксимация была бы достаточно хорошей, но невозможность получить доступ к синхронизации на уровне выборки разочаровывает, так как это может привести к некоторому сбою фазы, когда я синхронизирую два потока.
1 ответ
Метод process() класса SuperpoweredAdvancedAudioPlayer принимает параметр numberOfSamples. Если метод process() возвращает true, он помещает выборки numberOfSamples в буфер. Так что просто накапливайте число образцов.