nick01
nick01
  • 发布:2016-03-27 16:58
  • 更新:2016-05-22 11:07
  • 阅读:7500

关于base64保存为文件

分类:Native.js

下面链接有提到把base64转字节数组,写入文件流,一次写入所有字节,得到的文件依然是0字节,一个个的写速度非常慢,并且音频文件无法播放
http://ask.dcloud.net.cn/question/7979

图片可以通过bitmap保存,非图片格式呢?如我现在需要的音频,向各位请教

2016-03-27 16:58 负责人:无 分享
已邀请:
nick01

nick01 (作者)

已解决,折腾了好几天才找出正确方法来,如下,提出的问题基本得不到帮助,只能靠自己摸索了

if(mui.os.android){  
            var Base64 = plus.android.importClass("android.util.Base64");  
            var File = plus.android.importClass("java.io.File");  
            var FileOutputStream = plus.android.importClass("java.io.FileOutputStream");  
            var dir = new File(path);  
            if (!dir.exists()) dir.mkdirs();          
            try{  
                var out = new FileOutputStream(path+name);  
                var bytes = Base64.decode(base64Str.replace('data:audio/amr;base64,',''), Base64.DEFAULT);  
                out.write(bytes);   
                out.close();  
                callback && callback(name,extra);  
            }catch(e){  
                console.log(e.message);  
            }  
        }else if(mui.os.ios){  
            var NSData = plus.ios.importClass('NSData');  
            var nsData = new NSData();  
            nsData = nsData.initWithBase64EncodedStringoptions(base64Str,0);  
            nsData.plusCallMethod({writeToFile:path+name,atomically:true});  
            plus.ios.deleteObject(nsData);  
            callback && callback();   
        }       
  • 2***@qq.com

    您好,nsData.initWithBase64EncodedStringoptions(base64Str,0)的结果是undefined,base64Str是从后台返回的JSON中拿到的数据,你遇见过这种问题吗

    2016-11-10 18:37

123clr

123clr

请问你解决了吗这个问题,我现在也需要将base64转为可播放的语音,求帮助

该问题目前已经被锁定, 无法添加新回复