实验表明,为了让GSM文件在windows盒子上的Quicktime中播放,最终的重定向url必须以.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>'
);
我与苹果公司的一位技术支持代表进行了交谈,他向我介绍了QuickTime的HTML脚本指南和QuickTime的JavaScript脚本指南,以获取文档。
我可以通过关闭PHP中的zlib.output_compression
并提供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;