移动设备上的jPlayer仅在第二次尝试时开始播放

时间:2015-09-28 14:13:30

标签: javascript jquery html5 mobile jplayer

我正在使用jPlayer作为播放从服务器传输的MP3文件的网站插件。当您在网站中包含主脚本时,会在DOM结构中添加一个按钮,允许用户打开播放器。单击此按钮时,createElement()和appendChild()会添加播放器的结构(播放/暂停,后退,前进,停止按钮)。也是第二个脚本的实例,称为"播放"将包括在内。此脚本管理播放器的状态。点击播放器按钮调用播放脚本中的功能。

现在当您第一次按下播放时,jPlayer对象将被初始化,最后调用函数playCurrent()以播放队列中的当前MP3文件。

jPlayer对象的初始化:

___jQuery("#"+player_ID).jPlayer({
        swfPath: scriptPath + "jquery.jplayer.swf",
        ready: function() {
            if (!stoppedByError) {
                // move the cursor to part 0 and play it
                if (!singleStringMode) {
                    moveCursor(0);
                }   
                console.log("FIRST START");
                // update the player status
                setPlayerStatus(1);
                // play the current text part
                playCurrent();
            }
        },
        ended: function(event) {
            if (!stoppedByError) {
                self.goToNext();
            }
        },
        errorAlerts: false,
        supplied: "mp3",
        error: function(event) {
            if (!stoppedByError) {
                handlePlayerError();
            }
        }
});

开始播放的代码(在playCurrent()函数中):

___jQuery("#"+player_ID).jPlayer('setMedia', {
    mp3: textParts[currentPart].mp3
    //ogg: "sample.ogg"
}).jPlayer("play");

当然,在此代码之前检查MP3的指定URL(textParts [currentPart] .mp3),以确保已成功从服务器传输MP3。

所有这一切在Chrome,Firefox和较新版本的IE中的桌面PC上都能正常工作。但是,在某些移动设备(iOS,Android)上存在一个奇怪的错误:当您第一次按下播放按钮时,它会变为暂停按钮,但播放不会开始。只有当你再按两次按钮时(一次暂停播放,再一次再按一次),一切都像桌面浏览器一样。

我知道jPlayer的自动播放通常不适用于移动设备,因此此选项仅在移动设备上关闭。但我找不到任何好的解释为什么在第一次尝试时播放失败。我使用jConsole进行移动调试,没有任何错误。 我尝试的一件事是将一些静音虚拟MP3文件分配给就绪功能中的jPlayer实例,以确保在第一次启动播放器时某些音频可用,但它也没有帮助。

这似乎不是jPlayer的一般问题,因为我在相同的设备上测试了MP3播放的演示网站,它运行得很好。同样非常奇怪的是,这个问题不适用于Windows Mobile,只适用于iOS和Android。

在初次化jPlayer并首次启动它时可能出现什么问题?

0 个答案:

没有答案