javascript - Phonegap 媒体 API 暂停/恢复

标签 javascript android cordova phonegap-plugins

我正在使用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);}

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

关于javascript - Phonegap 媒体 API 暂停/恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27081830/

相关文章:

android - 在模块 jetified-google-play-services.jar 和 jetified-play-services-base-17.0.0-runtime.jar 中发现重复的类

javascript - 使用 JavaScript 根据给定数字生成 HTML 表格

android - 谷歌地图 API 位置更新

javascript - 无法将项目添加到数组

java - 如何不用浏览器后台打开一个有IP的url?

android - 方向改变后的奇怪行为

javascript - 为什么我无法在 cordova 应用程序中获取全局值?

android - 运行 "cordova build android"- 无法找到属性 android :fontVariationSettings and android:ttcIndex

javascript - curl -d 在 Node.js http post 请求中等效

javascript - 何时解决注入(inject) Controller 的服务的双向绑定(bind)问题?