Web Audio API无法在iOS版本13.3上播放。适用于旧版本的iOS

12

我有一个使用网络音频API制作的音频可视化程序。它可以在PC上运行,并且可以在iOS上运行,直到我更新到13.3。

我不知道是什么原因导致它无法正常工作。我所知道的是,它仅在更新版本的iOS上发生。

这是我的jsfiddle。https://jsfiddle.net/r1dobj07/

document.getElementById("btn").addEventListener("click", function() {

var canvas = document.getElementById('canvas');
var audio = new Audio();
audio.loop = true;
audio.autoplay = false;
audio.crossOrigin = "anonymous";

audio.addEventListener('error', function(e) {
  console.log(e);
});
audio.src = "https://greggman.github.io/doodles/sounds/DOCTOR VOX - Level Up.mp3";
//audio.play();
audio.controls = true;

document.getElementById("wrapper").append(audio);

var player = document.getElementById('audio_player');
var context = new(window.AudioContext || window.webkitAudioContext)();
var src = context.createMediaElementSource(audio);
var analyser = context.createAnalyser();
src.connect(analyser);
analyser.fftSize = 32;
analyser.connect(context.destination);

var ctx = canvas.getContext("2d");

var bufferLength = analyser.frequencyBinCount;


var dataArray = new Uint8Array(bufferLength);


var WIDTH = canvas.width;
var HEIGHT = canvas.height;

var barWidth = (WIDTH / bufferLength) * 0.5;
var barHeight;
var x = 0;


function renderFrame() {
  requestAnimationFrame(renderFrame);
  x = 0;
  analyser.getByteFrequencyData(dataArray);

  ctx.fillStyle = "rgba(0,0,0,0)";
  ctx.clearRect(0, 0, WIDTH, HEIGHT);

  for (var i = 0; i < bufferLength; i++) {
    barHeight = dataArray[i];
    if (barHeight === 0) {
      barHeight = 20;
    }
    var barHeightScaled = barHeight / 250;
    var barHeightScaled2 = barHeightScaled * HEIGHT;
    var newHeight = HEIGHT - barHeightScaled2;
    var r = 111;
    var g = 121;
    var b = 180;

    CanvasRenderingContext2D.prototype.roundRect = function(x, y, w, h, r) {
      if (w < 2 * r) r = w / 2;
      if (h < 2 * r) r = h / 2;
      this.beginPath();
      this.moveTo(x + r, y);
      this.arcTo(x + w, y, x + w, y + h, r);
      this.arcTo(x + w, y + h, x, y + h, r);
      this.arcTo(x, y + h, x, y, r);
      this.arcTo(x, y, x + w, y, r);
      this.closePath();
      return this;
    }


    ctx.fillStyle = "rgb(" + r + "," + g + "," + b + ")";
    ctx.roundRect(x, newHeight / 2, barWidth, barHeightScaled2, 50).fill();

    x += barWidth + 4;
  }
}

renderFrame();

}

);

在PC上运行正常。在我的iPhone上,它无法播放音频。我可以看到这些条形图是在iOS上渲染的,但是它们没有移动,因为没有音频输出。

克里斯古坦丁

不幸的是,当前iOS中存在一个与MediaStreamAudioSourceNode相关错误一旦将MediaElement连接到AudioContext,它就会停止。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

适用于旧版本Java的Spring Boot

来自分类Dev

Web Audio API互相播放说明

来自分类Dev

Web Audio API 延迟缓冲播放

来自分类Dev

Web Audio API 演示在 iOS 上不起作用

来自分类Dev

Web Audio API和<audio>标签

来自分类Dev

Web Audio API和<audio>标签

来自分类Dev

如何使软件中心适用于Ubuntu 11.04(或任何旧版本)?

来自分类Dev

如何使软件中心适用于Ubuntu 11.04(或任何旧版本)?

来自分类Dev

阻止旧版本的iOS

来自分类Dev

单击使用Web Audio Api播放的流中的声音

来自分类Dev

Web Audio Api,设置增益

来自分类Dev

与Web Audio API完美同步

来自分类Dev

基于Web的广播和音频流服务是否使用Web Audio API进行播放?

来自分类Dev

在ASP NET Web API中进行路由-适用于不同版本的API

来自分类Dev

Breeze Server的Microsoft.Data.OData版本不匹配-适用于Web API 2

来自分类Dev

Breeze Server的Microsoft.Data.OData版本不匹配-适用于Web API 2

来自分类Dev

Asp.net .core web api 版本控制不适用于 Url 路径段

来自分类Dev

适用于iOS和Android的PHP Web服务

来自分类Dev

Web Audio API,从声卡获取输出

来自分类Dev

Web Audio API中音符的频率

来自分类Dev

Web Audio API的位深度是多少?

来自分类Dev

Web Audio API中的反馈循环

来自分类Dev

Web Audio API,设置高音和低音

来自分类Dev

Create a waveform of the full track with Web Audio API

来自分类Dev

Shoutcast + Web Audio API CORS问题

来自分类Dev

使用Web Audio API缓冲音频

来自分类Dev

Web Audio API如何命名声音

来自分类Dev

Web Audio API-计划问题

来自分类Dev

Web Audio API中AudioWorkerNode的状态