电话间隙媒体 API 暂停/恢复

Phonegap media api pause/resume

本文关键字:暂停 恢复 API 媒体 电话间 间隙 电话      更新时间:2023-09-26

我正在创建一个带有phonegap的RSS播放器应用程序。除了暂停/恢复功能外,一切都在工作。暂停很好,但是当再次按下暂停按钮(恢复播放)时,它会返回到mp3的开头。我的代码如下。任何帮助将不胜感激。

    function onDeviceReady() {
        //window.alert("Loading PhoneGap is completed");
    }
    var media = null;
    var mediaTimer = null;
    function playAudio() {
        //get url passed from previous screen.
        var mp3 = localStorage.getItem("url_to_play");
        var src = mp3;
        media = new Media (src , onSuccess, onError);
        //Play the audio. You can set number of the replaying time here.
        media.play({numberOfLoops:"infinite"});
        if (mediaTimer == null) {
            mediaTimer = setInterval(function() {
                // Return a current playback position
                media.getCurrentPosition(
                    //A Callback function if it's success
                    function(position) {
                        if (position > -1) {
                            setAudioPosition((position) + " sec");
                                    //If the playback stops at "-0.001" position, replay the audio.
                                    if(position == -0.001){
                                        media.play({numberOfLoops:"infinite"});
                                    }
                        }
                    },
                    //A callback function in case of failure
                    function(e) {
                        console.log("Error getting pos=" + e);
                        setAudioPosition("Error: " + e);
                    }
                );
            }, 1000);
        }

    }
    function pauseAudio() {
        if (media) {
            media.pause();
        }
    }
    function stopAudio() {
        if (media) {
            media.stop();
        }
        clearInterval(mediaTimer);
        mediaTimer = null;
    }

我通过执行以下操作对此进行了排序:

if(media === null){media = new Media (src , onSuccess, onError);}

仅当新媒体对象不存在时才创建它。如果它确实存在,那么它已经在播放并且不需要这个。