小闹
小闹
  • 发布:2015-07-19 14:10
  • 更新:2016-08-09 16:41
  • 阅读:30661

如何使用JS将音频文件如何转换成base64格式的?

分类:HTML5+

有没有人知道,如何使用JS将音频文件如何转换成base64格式的?

2015-07-19 14:10 负责人:无 分享
已邀请:

最佳回复

stock2

stock2

通过读取文件 ,然后转码 .图片可以,其他文件一样可以的
// Read data from file
以www目录下audio/shake.wav为例:

plus.io.requestFileSystem(plus.io.PRIVATE_WWW,  
function(fs) {  
    var rootEntry = fs.root;  
    var reader = null;  
    rootEntry.getFile('audio/shake.wav', {},  
    function(entry) {  
        entry.file(function(file) {  
            reader = new plus.io.FileReader();  
            reader.onloadend = function(e) {  
                plus.console.log("Read success");  
                // Get data  
                plus.console.log(e.target.result);  
            };  
            reader.readAsDataURL(file);  
        },  
        function(e) {  
            alert(e.message);  
        });  
    });  

});
  • 趴趴熊

    如果我想得到base64编码,应该是var v = reader.readAsDataURL(file)还是var v = e.target.result;还是其他的?

    2015-10-20 11:34

  • stock2

    var v = e.target.result

    2015-10-20 13:15

  • 趴趴熊

    回复 stock2:谢谢

    2015-10-20 15:36

  • stock2

    不客气 :D

    2015-10-20 18:05

  • 奎子

    为什么

    reader.onloadend = function(e) {

    plus.console.log("Read success");

    // Get data

    plus.console.log(e.target.result);

    };

    没法进入 这个方法里面??

    2016-03-07 15:13

  • w***@163.com

    为什么我用安卓的可以,用苹果的测试就取不到base64?

    plus.io.requestFileSystem()这个都执行不了,是路径问题吗

    2016-07-07 17:23

  • freedemon

    回复 w***@163.com:对啊对啊 情况跟你一样,哥们你解决了吗

    2016-08-09 16:43

  • freedemon

    安卓没问题,为什么ios发的WAV却不行,查看了一下rootEntry.getFile方法进不了。

    2016-08-09 16:45

小闹

小闹 (作者)

有没有清楚的?

小闹

小闹 (作者)

谢谢!

霸王

霸王

我常识转成base64后的音频播放不了啊,请问会是什么情况

小闹

小闹 (作者)

我这边没有问题,你检查一下代码吧

  • 趴趴熊

    你好,我用上面代码写的不执行,能给指导下吗?

    <script>

    var addr1 = document.getElementById("paoteooo1").src;

    var addr2 = document.getElementById("paoteooo2").src;

    function plusReady(){

    plus.io.requestFileSystem(plus.io.PRIVATE_WWW,

    function(fs) {

    var rootEntry = fs.root;

    var reader = null;

    rootEntry.getFile(addr1, {},

    function(entry) {

    entry.file(function(file) {

    reader = new plus.io.FileReader();

    reader.onloadend = function(e) {

    plus.console.log("Read success");

    // Get data

    plus.console.log(e.target.result);

    };

    reader.readAsDataURL(file);

    },

    function(e) {

    alert(e.message);

    });

    });

    });

    }

    if(window.plus){

    plusReady();

    }else{

    document.addEventListener("plusready",plusReady,false);

    }


    </script>

    2015-10-19 15:10

小闹

小闹 (作者)

应该是addr1地址的问题,试试toLocalURL

  • 趴趴熊

    好的,谢谢,我再试试哈。

    2015-10-19 17:50

  • 趴趴熊

    reader.readAsDataURL(file);是不是应该在reader.onloadend() 前面?

    2015-10-19 17:53

  • 小闹 (作者)

    reader.onloadend里面是完成后的处理逻辑

    2015-10-19 20:08

LionYoung

LionYoung

data:audio/amr;base64,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 这是我转换完的音频 播放不了,你们可以播放吗

  • 炭烧红豆奶茶

    data:audio/amr;base64 去掉试试

    2016-02-02 12:01

  • LionYoung

    回复 炭烧红豆奶茶:试过了,audio显示可以播放,但是放不出

    2016-02-02 12:04

  • 炭烧红豆奶茶

    回复 LionYoung: audio转换base64 是要上传服务器么

    2016-02-02 13:11

  • LionYoung

    回复 炭烧红豆奶茶:是的,不过现在我在本地转,转完放到页面的<audio></audio> 中不能播放

    2016-02-02 13:19

  • LionYoung

    解决了,原来要放到后台去处理再转换成文件

    2016-02-04 11:19

  • 奎子

    请问你后台转完之后 是把 音频文件 传到前台吗??

    2016-03-08 09:36

  • LionYoung

    回复 奎子:后台传一个JSON回来,里面就有录音文件在服务器的路径,这是我们这边项目的做法

    2016-03-08 10:22

  • 奎子

    @159955 你们ios怎么播放网络路径 ??

    2016-03-08 15:55

  • 1***@qq.com

    问一下,转完之后如何再转回去,谢谢。转完之后现在能播放了吗?

    2016-06-29 17:14

123clr

123clr

请问音频转base64成功了吗?求分享

  • 霸王

    就是按照1楼的写法,成功

    2016-04-25 10:22

  • 123clr

    回复 霸王:能贴一下代码吗?我的进不去onloadend

    2016-04-25 10:23

  • 123clr

    回复 霸王:弄图片也是,图片虽然用canvers解决了,但是语音没办法用canvers啊,都急死了

    2016-04-25 10:24

  • 123clr

    回复 霸王:获取的的语音路径_doc/audio/Recorder_015.wav

    2016-04-25 10:25

  • 霸王

    plus.io.resolveLocalFileSystemURL( zipfilename, function ( entry ) {

    var reader = new plus.io.FileReader();

    reader.onload = function(e) {

    console.log(e.target.result)

    }

    reader.readAsDataURL(entry);

    })

    2016-04-25 10:37

  • 123clr

    回复 霸王:我的都进不去onload

    2016-04-25 10:56

  • 123clr

    回复 霸王:大神,谢谢你哈。我的弄成功了

    2016-04-26 09:31

  • Eric_ou

    回复 123clr:怎么成功的,我现在也是进不去onload

    2016-05-06 11:25

freedemon

freedemon - 得于社区,反哺社区

我用amr转可以成功,用wav反而都进入不了读取文件的代码块,为何啊!!

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