【问题标题】:How to loop a audio in phonegap?如何在phonegap中循环播放音频?
【发布时间】:2018-11-26 10:25:15
【问题描述】:

我正在使用 phonegap 2.2.0。我尝试了一些代码来循环播放音频以不中断播放,但它无法在我的 android 设备上运行。它只播放一次。这是我的代码:

function playAudio(url) { var my_media = new Media(url, function() { console.log("playAudio():Audio Success"); }, function(err) { console.log("playAudio():Audio Error: "+err); }, function(status) { console.log("playAudio():Audio Status: "+status); } }); // Play audio my_media.play({numberOfLoops:99}); }

你能告诉我这里出了什么问题吗?

【问题讨论】:

    标签: cordova cordova-plugins


    【解决方案1】:

    收听状态变化并开始在 MEDIA_STOPPED 上付款。如果您希望用户停止声音,请使用 snd.pause() 而不是 snd.stop()

    这对我有用:

        document.addEventListener("deviceready", onDeviceReady, false);
    
        var getPhoneGapPath = function() {
            var path = window.location.pathname;
            path = path.substr( path, path.length - 10 );
            return path;
        };
    
        var snd = null;
    
        function onDeviceReady(){
            snd = new Media( getPhoneGapPath() + "sound/funk_game_loop.mp3", onSuccess, onError, onStatus);
            snd.play();
        }
    
        // onSuccess Callback
        function onSuccess() {
        }
        // onError Callback 
        function onError(error) {
        }
        // onStatus Callback 
        function onStatus(status) {
            if( status==Media.MEDIA_STOPPED ) {
                snd.play();
            }
        }
    

    【讨论】:

    • 虽然有一些延迟
    • 我正在使用这个解决方案,但每隔一段时间,音乐就会停止。好像有时 onStatus 没有被解雇。还有其他人看到这个问题吗?
    • 开始一个新循环有一些延迟时间。但它对我有用。
    【解决方案2】:

    Phonegap 中的 Android 尚不支持循环 - 所以 numberOfLoops 除了在 iOS 设备上什么都不做。

    【讨论】:

    • var myMedia; var loop = function (status) { if (status === Media.MEDIA_STOPPED) { myMedia.play(); } }; myMedia = new Media("/audio/my.mp3", null, null, loop); myMedia.play();
    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    相关资源
    最近更新 更多