2

实验表明,为了让 GSM 文件在 Windows 盒子上的 Quicktime 中播放,最终的重定向 url 必须以.gsm. 不幸的是,这对于测试人员所拥有的 OSX 系统来说是不够的,并且尝试 MIME 类型audio/gsmaudio/x-gsmapplication/gsmapplication/x-gsmapplication/x-GSM( 绝望 ) 不起作用。

建议的替代方案:使用http://www.westhawk.co.uk/software/playGSM/PlayGSM.html - 但需要能够寻找/显示进度指示器。将 GSM 文件在服务器上转码为 MP3 文件,无论是在浏览器请求之前还是在浏览器请求它们时,并使用 HTML5 音频播放器 (+shim) 来播放它们 - 但服务器管理员对负载/存储的使用感到不舒服。

如何说服 OSX 上的 Quicktime 浏览器插件播放文件?搜索 Quicktime 浏览器插件的文档对我来说并不成功。

在相关说明中,http://jquery.malsup.com/media/audio.html上的页面确实加载了提供的 GSM 文件,并且直接下载到 Mac 的文件在 Quicktime 中可以正确播放。测试 Mac 运行的是 OSX 10.5.8。

请在下面找到嵌入代码:

$('#gsm_player').html('<object type="video/quicktime" data="'+
    event.target.href+'" width="300" height="20">'+
    '<param name="src" value="'+ event.target.href+'">'+
    '<param name="autoplay" value"true">'+
    '<p>QuickTime is required to listen to this file.'+
    '<a href="http://www.apple.com/quicktime/download/" '+
    'target="_blank">Download Here</a></p>'+
    '</object>'
);
4

1 回答 1

2

我与 Apple 的一位技术支持代表进行了交谈,他指导我阅读 QuickTime 的HTML 脚本指南和 QuickTimeJavaScript 脚本指南以获取文档。

我能够通过关闭zlib.output_compressionPHP 并提供 HTTPContent-Length标头来解决我的问题。我没有提供带有假扩展名的文件,而是audio/x-gsm用作Content-Type标题。Content-disposition: attachment;...无论有没有标题,Quicktime 似乎都很好。我的文件现在可以在 OSX 和 Windows 中正常运行。

值得注意的是https://groups.google.com/forum/?fromgroups=#!topic/iphonewebdev/-5x2QNVCgII上的讨论,特别是在http://code.google.com/p/上提到的源代码asterisk-voicemail-for-iphone/source/browse/trunk/iphone/i_functions.php#29。它包含我见过的最好的 206 处理程序之一,让我走上了正确的道路,并且可能比做对我有用的事情更有帮助(我不需要 206 处理,但你可能需要)。

请在下面提供文件的文件下载器脚本部分找到:

header('Content-Type: audio/x-gsm');
header("Content-disposition: attachment; filename=file.gsm");

ini_set("zlib.output_compression", "Off");
header("Content-Length: ".strlen($file));

echo $file;
exit;
于 2012-12-06T01:21:26.453 回答