javascript – 将音频数据uri字符串转换为文件

前端之家收集整理的这篇文章主要介绍了javascript – 将音频数据uri字符串转换为文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
服务器将音频数据保存为base64数据字符串.移动Web客户端获取数据并播放音频.

但是在iOS和Android中的移动Chrome中发现了一个问题,即带有数据uri的音频无法播放(issue).

为了使它工作,我想知道在客户端是否有办法将数据字符串转换为音频文件(如.m4a)并将音频src链接文件

解决方法

使用网络音频api直接计算出来,在iOS和Android的移动浏览器中具有最佳兼容性.
function base64ToArrayBuffer(base64) {
  var binaryString =  window.atob(base64);
  var len = binaryString.length;
  var bytes = new Uint8Array( len );
  for (var i = 0; i < len; i++)        {
    bytes[i] = binaryString.charCodeAt(i);
  }
  return bytes.buffer;
}

var base64 = '<data string retrieved from server>';
var audioContext = new (window.AudioContext || window.webkitAudioContext)();
var source = audioContext.createBufferSource();
audioContext.decodeAudioData(base64ToArrayBuffer(base64),function(buffer) {
   source.buffer = buffer;
   source.connect(audioContext.destination);
   source.start(0);
});

它适用于iOS Safari,Chrome和Android默认浏览器和Chrome.

原文链接:https://www.f2er.com/js/158548.html

猜你在找的JavaScript相关文章