用html5的download方法在iPhone手机下载文件,涉及权限问题吗,为什么在Android就好使,在ios下载后,读取就报找不到文件呢?
用的是html5的plus.downloader.createDownload进行下载,已经提示下载成功了,但是一读取就报找不到文件呢?
马赛
- 发布:2015-01-07 09:55
- 更新:2015-01-07 11:32
- 阅读:2238
【咨询】iPhone读取音频文件问题
分类:HTML5+
3 个回复
DCloud_IOS_XTY
请贴下你的代码有可能两平台实现有差异
马赛 (作者)
感谢回复,是这样的,我是调用了系统提供播放控件,发现ios是读取相对路径可以成功播放,所以在下面做了处理,测试结果,在ios录制音频后,通过读取音频可以播放,但是从服务器上下载的文件后读取音频文件就报异常,无法找到音频文件,初步怀疑是不是权限有问题
function startPlay( url ) {
if(osName=='iOS'){
if(url.indexOf("_")==0){
}
DCloud_IOS_XTY
如何是使用plus.audio接口下载task取到的路径不需要进行转化
2015-01-07 12:31
马赛 (作者)
之前用的就是全路径,有这个问题我才转换的,转换后还是不行
2015-01-07 13:29
DCloud_IOS_XTY
task取到的路径不是全路径而是类似_downloads/这种路径,这个plus.audio接口是直接支持的
2015-01-07 14:01
马赛 (作者)
我是这样设置的下载路径,var options = {method:"GET",filename:"_doc/audio/"+fname};我用task.filename直接取的这个也试过了,读取的相对路径,也不行,不知道我哪里设置的有问题
2015-01-07 14:13
DCloud_IOS_XTY
这样你把从下载开始到播放的代码摘出来发给我看看
2015-01-07 14:49
马赛 (作者)
下载方法如下,完全参考官方写法,startPlay方法上面已经贴出来了
function DownloadTask(fname){
if ( dtask ) {
console.log( "下载任务已创建!" );
return;
}
var url = "http://xxxx?filename="+fname;
var options = {method:"GET",filename:"_doc/audio/"+fname};
dtask = plus.downloader.createDownload( url, options );
dtask.addEventListener( "statechanged", function(task,status){
switch(task.state) {
case 1: // 开始
console.log( "开始下载..." );
break;
case 2: // 已连接到服务器
console.log( "链接到服务器..." );
break;
case 3: // 已接收到数据
}
2015-01-07 15:06
DCloud_IOS_XTY
代码试了没有问题,是离线打包吗?另外下载的是什么音频文件是播放器不支持吗
2015-01-07 18:46
马赛 (作者)
没打包,是开发模式,下载的音频文件是MP3格式的,是Android的amr格式转的mp3,之前iPhone的wav转mp3在Android上播放是没问题的,现在就是Android的amr格式转换成mp3之后在iPhone上就提示找不到文件,您可以模拟一下看是否有这种问题
2015-01-08 09:02
EEP
代码展示好像没有高亮,应该很多这种插件