我尝试了多种方法在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');
答案 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' );
}