【问题标题】:How to play MP3 with no file extension in Flex 4 Spark Video Player如何在 Flex 4 Spark 视频播放器中播放没有文件扩展名的 MP3
【发布时间】:2010-12-09 09:32:02
【问题描述】:

我有一个通过“somepage.php?id=100”从服务器检索到的 mp3。当我将它加载到 spark VideoPlayer 中时,它不起作用。但是,当我复制该 URL 并将其放入浏览器 URL 时,我会看到一个对话框,询问我是否要下载“sound.mp3”。

更新!!!

//在创建完成处理程序中 var audioElement:AudioElement = new AudioElement(); audioElement.resource = new URLResource(path); audioElement.resource.mediaType = MediaType.AUDIO; videoPlayer.source = audioElement.resource;

// 并且在视频播放器中你必须将 autoDisplayFirstFrame 设置为 FALSE

似乎音频在添加到创建完成时是按顺序排列的,这意味着如果一个音频文件正在加载,另一个音频文件将在第一个完成后才会开始。

【问题讨论】:

  • 您是否需要建议如何修复服务器上的 PHP 页面,或者如何在 Spark VideoPlayer 中打开文件?
  • 如何在 Spark VideoPlayer 中打开文件。

标签: apache-flex actionscript-3 mp3


【解决方案1】:

检查 PHP 脚本是否返回正确的媒体类型:

header('Content-Type: audio/mpeg');

如果不是,玩家确实应该拒绝玩它。

如果 正常,并且 Spark 只是愚蠢地从文件扩展名中猜测文件类型而不是正确的媒体类型,那么您可能会尝试通过破解 URL 来解决它,例如。 somepage.php/something.mp3?id=100 或者somepage.php?id=100&ignore=/something.mp3

【讨论】:

  • 服务器没有返回 mp3 内容类型。黑客成功了!这是返回的内容: Content-Disposition 附件;文件名=noooooo.mp3; Content-Length 214922 Content-Transfer-Encoding binary Content-Type application/octet-stream
  • 黑客似乎不起作用。看起来我需要设置内容类型。
  • var audioElement:AudioElement = new AudioElement(); audioElement.resource = new URLResource("stage.domain.com/api/get_file_content.php?id=100"); audioElement.resource.mimeType = "audio/mpeg"; // 这工作并且... //audioElement.resource.mediaType = MediaType.AUDIO; // ...这也适用 video1.source = audioElement.resource;
猜你喜欢
  • 1970-01-01
  • 2011-04-26
  • 1970-01-01
  • 1970-01-01
  • 2021-09-13
  • 2015-01-31
  • 2011-05-26
  • 1970-01-01
  • 2021-05-01
相关资源
最近更新 更多