超级强大的SDK

Superpowered SDK Android

本文关键字:SDK      更新时间:2023-10-16

你好,我想创建一个播放器与超级强大的sdk,但我不能退出循环。当歌曲结束时,他又开始演奏,因为它被删除了?

С++ void for start and pause play;

void SuperpoweredExample::onPlayPause(bool play) {
pthread_mutex_lock(&mutex);
if (!play) {
    playerA->pause();
    playerB->pause();
} else {
    bool masterIsA = (crossValue <= 0.5f);
    playerA->play(!masterIsA);
    playerB->play(masterIsA);
};
pthread_mutex_unlock(&mutex);
}

JAVA

public void SuperpoweredExample_PlayPause(View button) {  // Play/pause.
    playing = !playing;
    onPlayPause(playing);
    Button b = (Button) findViewById(R.id.playPause);
    b.setText(playing ? "Pause" : "Play");
}

和播放器初始化和播放选项在c++

SuperpoweredAdvancedAudioPlayer *playerA = *((SuperpoweredAdvancedAudioPlayer **)clientData);
    playerA->setBpm(126.0f);
    playerA->setFirstBeatMs(1);
    playerA->setPosition(playerA->firstBeatMs, false, false);
    playerA->exitLoop(); // not work
    playerA->looping = false; // not work
    playerA->togglePlayback();
    playerA = new SuperpoweredAdvancedAudioPlayer(&playerA , playerEventCallbackA, samplerate, 0);
    playerA->open(path, params[0], params[1]);

处理方法中的播放状态playerEventCallbackA from

playerA = new SuperpoweredAdvancedAudioPlayer(&playerA , playerEventCallbackA, samplerate, 0);

它是主玩家事件的回调函数。如果你查看 superpoweredadvancedaudioplayer。h类你会发现

typedef enum SuperpoweredAdvancedAudioPlayerEvent {
    SuperpoweredAdvancedAudioPlayerEvent_LoadSuccess,
    SuperpoweredAdvancedAudioPlayerEvent_LoadError,
    SuperpoweredAdvancedAudioPlayerEvent_EOF,
    SuperpoweredAdvancedAudioPlayerEvent_JogParameter,
    SuperpoweredAdvancedAudioPlayerEvent_DurationChanged,
} SuperpoweredAdvancedAudioPlayerEvent;

当你收到SuperpoweredAdvancedAudioPlayerEvent_EOF事件时,你可以暂停或做任何你想做的播放。

    static void playerEventCallbackA(void *clientData, SuperpoweredAdvancedAudioPlayerEvent event, void *value) {
        SuperpoweredAdvancedAudioPlayer *playerA = *((SuperpoweredAdvancedAudioPlayer **)clientData);
        if (event == SuperpoweredAdvancedAudioPlayerEvent_LoadSuccess) {
            // handle player prepared
        } else if (event == SuperpoweredAdvancedAudioPlayerEvent_LoadError) {
            // handle error with player
        } else if (event == SuperpoweredAdvancedAudioPlayerEvent_EOF && !loopingA) {
            playerA->pause();
        }
    }

希望能有所帮助。

相关文章:
  • 没有找到相关文章