实验表明,为了让GSM文件在Windows框中的Quicktime中播放,最终的重定向网址必须以.gsm
结尾。不幸的是,这对于测试人员拥有的OSX系统来说是不够的,并且尝试了MIME类型audio/gsm
,audio/x-gsm
,application/gsm
,application/x-gsm
和application/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>'
);
答案 0 :(得分:2)
我与Apple的技术支持代表进行了交谈,他指示我HTML Scripting Guide for QuickTime和JavaScript 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;