如何在OSX上使用Quicktime在浏览器中播放GSM文件?

时间:2012-12-04 16:47:06

标签: php macos apache2 quicktime gsm

实验表明,为了让GSM文件在Windows框中的Quicktime中播放,最终的重定向网址必须以.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>'
);

1 个答案:

答案 0 :(得分:2)

我与Apple的技术支持代表进行了交谈,他指示我HTML Scripting Guide for QuickTimeJavaScript Scripting Guide for QuickTime提供文档。

我能够通过在PHP中关闭zlib.output_compression并提供HTTP Content-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;