Cordova,Android和无缝/无缝循环的声音

时间:2015-06-07 11:22:51

标签: javascript cordova phonegap-plugins cordova-plugins

我尝试了多种方法在Android中实现无间隙/无缝循环。

我尝试过cordova的默认媒体插件。我尝试过NativeAudio插件(blog post)。

它们都会在循环之间产生明显的差距。

是否有任何插件不能这样做?我的一些声音短至4秒(例如下雨),并且间隙会破坏整个播放。

// Cordova's Media plugin:
var loop = function (status) {
    if (status === Media.MEDIA_STOPPED) {
        my_media.play();
    }
};

function playAudio(src) {
    my_media = new Media(src, onSuccess, onError, loop);

    my_media.play();
}

// NativeAudio:
window.plugins.NativeAudio.loop('sound');

1 个答案:

答案 0 :(得分:1)

请尝试使用此插件:https://github.com/SidneyS/cordova-plugin-nativeaudio

我认为代码的这一部分是造成差距的原因:

var loop = function (status) {
    if (status === Media.MEDIA_STOPPED) {
        my_media.play();
    }
};

因为循环已经没有它,所以你可以要求两次播放音乐。

我建议使用包含循环的演示代码:https://github.com/SidneyS/cordova-plugin-nativeaudio#demo

if( window.plugins && window.plugins.NativeAudio ) {

    window.plugins.NativeAudio.preloadComplex( 'music', 'audio/music.mp3', 1, 1, 0, function(msg){
    }, function(msg){
        console.log( 'error: ' + msg );
    });


    // Play
    window.plugins.NativeAudio.loop( 'music' );
}