【问题标题】:Problem using the JPlayer audio player使用 JPlayer 音频播放器的问题
【发布时间】:2024-01-30 11:30:01
【问题描述】:

我正在尝试使用 JPlayer (http://www.happyworm.com/jquery/jplayer/) jQuery 插件,但在使用 Flash SWF 时遇到了一些问题。在这种情况下,我遇到了一个错误m.fl_play_mp3 is undefined,我已经追溯到可能是 SWF 文件的路径存在问题。但是,我已将 SWF 的完整路径直接放在 embed 标记中,它仍然不起作用。当我将src 中的完整路径复制到浏览器窗口中时,我得到了 Flash 对象。那么接下来最好的调试方法是什么?

有什么方法可以验证 标签是否真的能够加载 Flash 文件?

我可以反省编译后的 SWF 公开了哪些方法吗?

更新:我检查了 Firebug Net 选项卡,并下载了 SWF 文件。所以肯定还有另一个问题。错误发生在 jPlayer.js 文件中,当我尝试此演示时遇到此错误:http://www.happyworm.com/jquery/jplayer/0.2.5/demo-07.htm。我在 Snow Leopard 上使用 Firefox 3.6。失败的行是下面sn-p中的第四行:

play: function(e) {
    var fid = $(this).data("jPlayer.config").fid;
 var m = $(this).data("jPlayer.getMovie")(fid);
 var r = m.fl_play_mp3(); // error occurs here
 if(r) {
     $(this).trigger("jPlayer.setButtons", true);
 }
}

更新 2: 我能够通过向 jPlayer 提供 mp3 文件而不是 wav 文件来解决这个问题。没有回答我的问题,但至少解决了这个问题。

【问题讨论】:

  • 使用 Firebug 的 net 标签来检查 flash 文件是否被加载。谁给你m.fl_play_mp3 is undefined? Javascript?从哪里打电话?可以出示一下代码吗?
  • 粘贴您的代码,它会有所帮助。

标签: javascript jquery html flash jplayer


【解决方案1】:

是flash版不播放音乐的问题吗?这是因为在这种情况下,它会查找与 SWF 文件相关的音乐,而不是 html。如果您使用相对路径作为 mp3 路径而不是 http 链接,则可能找不到您的音乐。

【讨论】:

    【解决方案2】:

    问题是当播放器退回到 Flash 时,您必须提供替代文件类型来替换 wav。仅部分 HTML5 浏览器支持 Wav 播放,Flash 不支持。

    您可以使用supplied 选项执行此操作。这告诉玩家要使用的类型和优先级。

    如果您提供 wav 和 mp3,则播放器将通过 html5 使用 wav 或 mp3(如果可以),或者作为最后的手段通过 flash 使用 MP3。

    【讨论】:

      【解决方案3】:

      确保播放器 div 没有 display: none;否则swf不会被初始化。

      即使您仅在 init() 期间隐藏播放器。如果需要隐藏,将位置设置为绝对,左侧设置为-5000px;

      【讨论】: