播放 WAV 时持续时间发生变化

DurationChanged while playing WAV

Android SuperpoweredSDK 版本 1.0.3

我试图通过 SuperpoweredAdvancedAudioPlayer 循环播放 WAV 文件。 由于某种原因,我在每个 SuperpoweredAdvancedAudioPlayerEvent_EOF 之前都有 SuperpoweredAdvancedAudioPlayerEvent_DurationChanged 。每次播放后我的循环越来越小。我可以在 durationMs 中听到和看到这个。 当我播放 AAC 或 MP3 时,它没有发生。看起来像个bug,但可能我不知道一些重要的事情。

处理函数:

bool process(short int *output, unsigned int numberOfSamples) {
    bool notEmpty = false;
    for (int i = 0; i != numStreams; ++i) {
        Stream* stream = streams[i];
        notEmpty = stream->player->process(stereoBuffer, notEmpty, numberOfSamples, stream->volume) || notEmpty;
    }
    if (notEmpty)
        SuperpoweredFloatToShortInt(stereoBuffer, output, numberOfSamples);
    return notEmpty;
}

我确实在远程连接到此的 Superpowered 源中发现了一个错误,但是它与您的具体示例无关。如果您使用的是当前可用的最新版本 (1.0.3),则不应发生这种情况。

如果 1.0.3 版本出现这种情况,理论上下一次更新会修复它。在那之前,只需忽略循环的持续时间更改事件——您并不真正需要它。