html5 - 手机chrome使用audio,请求音频数据总是被canceled。
天蓬老师
天蓬老师 2017-04-17 11:06:56
[HTML讨论组]

我现在有个需求,就是在网页中播放歌曲。歌曲资源是放在七牛上的,并且是私有资源。每次客户端需要播放音乐的时候都需要先向服务器发送请求,并带上认证信息,然后会通过302跳转到七牛服务器请求数据。

但现在的问题来了,在桌面版chrome里可以播放歌曲,手机端chrome却不行。

桌面chrome版本为 Chromium 32.0.1700.107 Ubuntu 13.10
手机chrome版本为 Chrome 31.0.1650.59

桌面chrome请求结果

首先会向/api/muzzik/music发送请求,然后会收到302跳转,跳到七牛服务器,七牛会返回数据,并设置head Content-Type:audio/mpeg

手机chrome请求结果

手机端在302跳转之后直接就Canceled,查看请求信息,没发现服务器返回任何数据。


监听audioElement的error事件之后,发现错误原因是MEDIA_ERR_SRC_NOT_SUPPORTED,但它没有向服务器请求过数据,怎么就知道返回的数据就不支持了呢?而且我也试过直接将链接输入到地址栏里,可以出现播放器窗口并可以播放,为什么设置成audio的src就不行了呢?


而且最奇怪的是,用手机访问虾米,查看网络记录也显示相关的音频文件被cancel掉了,为什么它就可以播,而且没有提示错误??

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
天蓬老师

自己解决了问题。

原来手机版的chrome,在使用audio,video标签的时候,src不支持302跳转。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号