标签: javascript-audio-api

Javascript 可以检测移动设备是否静音吗?

当用户回答正确/错误的问题时,我的网站当前正在播放声音。但我注意到在我的平板电脑 (iPad) 和手机 (iPhone) 上,即使我将其置于静音模式,它也会播放声音。而且我不希望手机/平板电脑在用户明确将设备设置为静音模式(铃声)时播放声音。那么,我可以检测设备是否静音/静音,然后不播放任何声音吗?我在 Safari 和 Chrome 上进行了测试,它总是播放声音,而不管 Ringer 的状态如何。

编辑:如果无法阅读此信息,那么我的问题是是否有一种方法可以播放尊重用户静音偏好的声音?我正在使用 jQuery 的$("#correctsound").trigger('play'),显然这不尊重这些设置。我们是否有不同的方式来播放将这些设置考虑在内的声音?

javascript javascript-audio-api

2
推荐指数
1
解决办法
3736
查看次数

使用 AudioBuffer 作为 HTMLAudioElement 的源?

如何将解码AudioBuffer数据设置为 的来源HTMLAudioElement

让我们假设我们有一个HTMLAudioElement

let audio = new Audio();
Run Code Online (Sandbox Code Playgroud)

我们还能够接收和解码音频数据:

let context = new AudioContext();
let source = context.createBufferSource(); //this represents the audio source. We need to now populate it with binary data.

Api.getAudioFile(url).then((data) => {
  context.decodeAudioData(data, (buffer) => {
    source.buffer = buffer;
  }, null);
});
Run Code Online (Sandbox Code Playgroud)

如何将其source用作audio? 我假设我必须为此创建一个MediaStream对象,但不太清楚如何去做。

javascript javascript-audio-api

2
推荐指数
1
解决办法
1521
查看次数

使用 javascript 解析和显示 HTML 音频当前时间

我正在开发一个普通的 JavaScript + HTML 音频播放器,此时我想构建一个界面,以“MM:SS”的形式显示音频的当前时间。对于我可以搜索的内容,HTML 音频/视频 DOM 参考只有一个本机功能 -audio|video.currentTime以秒为单位以大十进制精度返回当前音频时间。

为了做到这一点,我编码:

HTML

<audio id='audio' src="http://www.stephaniequinn.com/Music/Canon.mp3" controls></audio>
<div id="timer">00:00</div>
Run Code Online (Sandbox Code Playgroud)

JavaScript

var audio = document.getElementById('audio'),
      timer = document.getElementById('timer');

var update = setInterval(function() {

  timer.innerHTML = audio.currentTime;
}, 10);
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法,但无法按照我想要的方式格式化输出。希望你们中的一些人可以对此有所了解。

代码笔示例

html javascript audio html5-audio javascript-audio-api

0
推荐指数
1
解决办法
2971
查看次数