Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 延迟/使用超级电源循环播放播放器时发出的咔哒声_Android_Superpowered - Fatal编程技术网

Android 延迟/使用超级电源循环播放播放器时发出的咔哒声

Android 延迟/使用超级电源循环播放播放器时发出的咔哒声,android,superpowered,Android,Superpowered,我使用一个超级强大的高级音频播放器在循环中播放wav文件。问题是,每次轨道循环时,都会有一点打嗝,伴随着爆裂声和很小的延迟。这是显而易见的,使循环完全无用 下面是我用来循环的回调函数 // Called by the playerA. static void playerEventCallbackA ( void * __unused clientData, SuperpoweredAdvancedAudioPlayerEvent event, v

我使用一个超级强大的高级音频播放器在循环中播放wav文件。问题是,每次轨道循环时,都会有一点打嗝,伴随着爆裂声和很小的延迟。这是显而易见的,使循环完全无用

下面是我用来循环的回调函数

// Called by the playerA.
static void playerEventCallbackA (
        void * __unused clientData,
        SuperpoweredAdvancedAudioPlayerEvent event,
        void *value
) {
    switch (event) {
        case SuperpoweredAdvancedAudioPlayerEvent_LoadSuccess:
            break;
        case SuperpoweredAdvancedAudioPlayerEvent_LoadError:
            log_print(ANDROID_LOG_ERROR, "Player", "Open error: %s", (char *)value);
            break;
        case SuperpoweredAdvancedAudioPlayerEvent_EOF:
            playerA->seek(0);    // loop track
            break;
        default:;
    };
}
考虑到这个SDK的全部要点是使录制和播放的延迟最小化,我想我一定是做错了什么


任何提示?

使用SuperpoweredAdvancedAudioPlayer->loop()和loopBetween()方法可以实现精确循环示例。

您的wav文件来自哪里?您是否尝试过在其他音频软件中循环使用它们?我在尝试加载m4a文件时遇到了相同的问题。当我返回并使用源音频wav时,它循环良好。wav文件被记录到ExternalStorateDirectory中,从那里可以读取它们。但是,它们应该只加载一次并保留在内存中。此外,文件在其他软件中循环良好。在每次循环之前,我听到的声音很少是咔哒声,更多的是口吃/犹豫/静止。要执行此操作,我是否可以使用loopBetween()设置循环点,然后通过调用player->loop()而不是player->play()?player->play()来播放音频基本上,但您也可以使用player->loop()的一个参数启动音频谢谢,我很高兴能尝试一下。那么,在创建播放器对象之后,我是否使用loopBetween?还是把它放在回调函数中?另外,是否有必要同时使用loopBetween和loop?或者我可以使用loopBetween,然后稍后调用player->play()?感谢您的时间,这非常有帮助。当然,在创建播放器实例后,您需要调用player->loopBetween()。使用loop()或loopBetween()。