用于android chrome的jPlayer preload音频

时间:2014-04-11 04:53:17

标签: android html5 audio

我有一个网站webapp,它高度依赖于jPlayer(仅限音频播放)。 我在webapp上有不同的音频和音频直播流。 我正在使用jPlayer的“预加载”选项,并使用“元数据”和“自动”选项对其进行了测试。

在IOS设备上,我能够预加载音频,音频在我播放后立即开始播放,但在使用Chrome的Android平板电脑和手机上,我无法在请求取消时预加载音频。 当我单击播放音频然后开始缓冲然后播放导致音频播放延迟和点击播放的时间。 我尝试将jPlayer的“解决方案”从“html,flash”更改为“flash,html”。 wmode选项也设置为'window'。 相同的代码在IOS和桌面上运行良好,但导致Android Mobile / Tablet Chrome出现延迟。

$("#jquery_jplayer_1").jPlayer({
                                    ready: function(event) {
                                        $(this).jPlayer("setMedia", {
                                            wav: c,
                                            mp3: c,
                                            m4a: c,
                                        }).jPlayer('play').jPlayer('stop');

                                        $(this).jPlayer("volume", 0.9);
                                    }, cssSelector: {
                                        mute: '.jp-mute',
                                        unmute: '.jp-unmute',
                                    },
                                    solution: "flash, html",
                                    swfPath: "_/js/_lib/",
                                    supplied: "mp3, m4a, wav, oga",
                                    wmode: "window",
                                    preload: "metadata",
                                    nativeVideoControls: true,
                                    volumechange: function(event) {
                                        if (event.jPlayer.options.muted) {
                                            $(".jp-volume-bar").slider("value", 0);
                                        } else {
                                            $(".jp-volume-bar").slider("value", event.jPlayer.options.volume);
                                        }
                                    }});

1 个答案:

答案 0 :(得分:0)

虽然不是这样,但您可以使用浏览器应用程序缓存来实现预加载。创建一个清单,声明您的音频文件网址是'应用程序的一部分。

如果您的音频文件未托管在您的站点服务器上,请确保您不使用https:在这种情况下,来自其他来源的文件不会被缓存...