标签: html5-audio

HTML5音频播放列表 - 如何在第一个音频文件结束后播放第二个音频文件?

在另一个完成后,我们怎样才能在html5播放中制作一些音频?

我尝试过使用jquery delay()函数,但它根本不工作,是否可以pause()在html5音频中使用定时器?例如,pause('500',function(){});

javascript audio jquery html5 html5-audio

13
推荐指数
2
解决办法
3万
查看次数

HTML5音频 - 声音仅播放一次

我使用的是Chrome,这是我的代码:

<audio id="letter_audio" src="audio/bomb.mp3" type="audio/mp3" preload="auto"></audio>

    $('.sound').live('click', function () {

        var sound = $("#letter_audio")[0];  

        sound.pause();
        sound.currentTime = 0;
        sound.play();

        return false;
    });
Run Code Online (Sandbox Code Playgroud)

我第一次点击播放时声音怎么播放.然后当我再次点击时,它会暂停,就像代码一样.但它只是暂停?我希望它能够播放,然后当我再次点击它时,返回0并再次播放代码中的代码?

jquery google-chrome html5-audio

13
推荐指数
2
解决办法
2万
查看次数

了解网络音频中的getByteTimeDomainData和getByteFrequencyData

无论我在哪里,这两种方法的文档都非常通用.我想知道我正在查看我从每个方法得到的返回数组到底是什么.

对于getByteTimeDomainData,每次传递覆盖的时间段是多少?我相信大多数的oscopes每次传球覆盖32毫秒.这也包括在内吗?对于实际的元素值本身,范围似乎是0 - 255.这相当于-1 - +1伏?

对于getByteFrequencyData,所覆盖的频率基于采样率,因此每个索引都是实际频率,但实际元素值本身又如何呢?是否有一个dB范围等于返回数组中返回的值?

html5 audio-streaming html5-audio web-audio-api

13
推荐指数
3
解决办法
3845
查看次数

HTML5音频:如何只播放音频文件的选定部分(音频精灵)?

我正在开发iOS节拍器网络应用程序.由于移动safari一次只能播放一个声音,我正在尝试创建一个"音频精灵" - 我可以使用单个音轨的不同片段来生成不同的声音.我有1秒的剪辑,上面有2个半秒的声音.

<audio id="sample" src="sounds.mp3"></audio>

<a href="javascript:play1();">Play1</a>
<a href="javascript:play2();">Play2</a>
<a href="javascript:pauseAudio();">Pause</a>

<script>
var audio = document.getElementById('click');

function play1(){
    audio.currentTime = 0;
    audio.play();

    // This is the problem area
    audio.addEventListener('timeupdate', function (){
        if (currentTime >= 0.5) {
            audio.pause();
        }
    }, false);
}   

function play2(){
    audio.currentTime = 0.5;
    audio.play();
}

function pause(){
    audio.pause();
}
</script>
Run Code Online (Sandbox Code Playgroud)

JSFiddle上看到它.

正如您所看到的,我试图使用'timeupdate'事件(jPlayer示例)但无济于事.

我见过Remy Sharp关于音频精灵的帖子,但是(A)我无法让它为我工作,而且(B)我宁愿远离库依赖.

有任何想法吗?在此先感谢您的帮助!


更新

我现在使用它setInterval:

function play1(){
    audio.currentTime = 0;
    audio.play();
    int = setInterval(function() …
Run Code Online (Sandbox Code Playgroud)

javascript html5 javascript-events html5-audio

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

设置<audio>标签的currentTime不起作用?

我在后台播放这个音频标签,我可以在几秒钟内将进度存储到cookie中.但是,我无法从该cookie启动音频.(继续在其他页面上)

$("p#sound audio").currentTime = $.cookie("audioTime");

<audio autoplay="autoplay" loop="loop" ontimeupdate="document.getElementById('tracktime').innerHTML = Math.floor(this.currentTime); $.cookie('audioTime', Math.floor(this.currentTime));">
    <source src="audio/song.ogg" type="audio/ogg" />
    <source src="audio/song.mp3" type="audio/mp3" />
    Your browser does not support the audio tag.
</audio>
<span id="tracktime">0</span>
Run Code Online (Sandbox Code Playgroud)

这是否与从头开始重新加载的歌曲有关?

谢谢!

编辑:

$("p#sound audio").get[0].currentTime
Run Code Online (Sandbox Code Playgroud)

使用.get [0],它也不起作用.

有人可以帮我清理一下吗?非常感激!

javascript html5 html5-audio

12
推荐指数
2
解决办法
2万
查看次数

通过createMediaElementSource从<audio />元素将audiodata加载到AudioBufferSourceNode中?

是否可以从<audio/>-element通过createMediaElementSource加载音频文件,然后将音频数据加载到AudioBufferSourceNode

使用audio-element作为源(MediaElementSource)似乎不是一个选项,因为我想使用像noteOn和的Buffer方法noteGrain.

不幸的是,不能通过XHR将音频文件直接加载到缓冲区 (请参阅通过客户端XHR打开Soundcloud Track的stream_url?)

尽管如此,从音频元素加载缓冲区内容似乎是可能的:

http://www.w3.org/2011/audio/wiki/Spec_Differences#Reading_Data_from_a_Media_Element

或者甚至可以直接使用<audio/>-element 的缓冲区作为sourceNode?

javascript html5 html5-audio web-audio-api

12
推荐指数
3
解决办法
3685
查看次数

使用Web Audio API创建10波段均衡器

我正试着用Web Audio API来重新创建类似
Winamp的10波段均衡器.

Winamp的10频段均衡器

据我所知,我要创建10个双二阶滤波器,设置其type2(一个带通滤波器),并设置其frequency[60, 170, 310, 600, 1000, 3000, 6000, 12000, 14000, 16000]分别.有一次,我已经做到了(这里的地方,我开始有点糊涂了),那么我会创建一个单独的增益节点对每个频率"带",并将其值绑定到一个滑块.

<input id="someFreqBand" type="range" min="-12" max="12" step="0.1" value="0" onchange="slide()"/>
Run Code Online (Sandbox Code Playgroud)

假设所有这些都是正确的,那么唯一剩下的步骤是将所有10个增益节点连接到音频上下文destination(我想这将采用所有10个频率"频带"并将它们混合/同步回来).这是创建Web Audio 10波段均衡器的正确方法吗?

我很困惑的主要问题是我如何将源"连接"到10个频带滤波器(+相关增益节点),因为所有节点只有一个输入或输出(包括目的地).

javascript equalizer html5-audio web-audio-api

12
推荐指数
2
解决办法
7096
查看次数

如何使用AudioContext进行搜索

我想创建按钮,在点击时播放下一首/上一首歌,但他们应该在长按时寻找音乐.

我确实设法改变歌曲,但我找不到搜索方法.还有如何从头开始玩?

有没有办法确定自歌曲开始以来已经过了多少?我发现缓冲区有持续时间,但没有实际播放时间.

在init:

context = new (window.AudioContext || window.webkitAudioContext)()
Run Code Online (Sandbox Code Playgroud)

要播放歌曲:

var buffer = song.buffer
var source = context.createBufferSource()
source.buffer = song.buffer
source.connect(analysers.main)
source.start(0, offset || 0)
Run Code Online (Sandbox Code Playgroud)

javascript html5-audio

12
推荐指数
1
解决办法
2526
查看次数

如何一个接一个地播放<audio>块,没有弹出和点击?

我有两个这样的标签:

<audio id="1" src="lub0.mp4" />
<audio id="2" src="lub1.mp4" />
Run Code Online (Sandbox Code Playgroud)

我想逐个播放它们,即.play()第一个,当它启动第一个事件时,我将.play()第二个.不幸的是,这给了我一个流行音乐.没有点击,有没有正确的crossbrowser方式来做到这一点?

文件本身很好,如果我在ffmpeg中将它们粘在一起,声音是完美的.

感谢名单.

audio html5 ffmpeg html5-audio media-source

12
推荐指数
1
解决办法
430
查看次数

Playing audio file returns "Uncaught (in promise)" but works in console

I'm trying to play audio files (I've tried many). All of them are mp3s. I've tested the following on both MAMP localhost and also by just running it in the browser.

I use the following javascript:

var testSound = new Audio();
testSound.src = "a.mp3"
setTimeout(testSound.play.bind(testSound),100)
Run Code Online (Sandbox Code Playgroud)

This returns the error:

Uncaught (in promise)
Run Code Online (Sandbox Code Playgroud)

Trying to catch it:

var testSound = new Audio();
testSound.src = "a.mp3"
setTimeout(playSound,100)
function playSound () {
    testSound.play().then(response => {

    }).catch(e => {
        console.log(e);
    })
}
Run Code Online (Sandbox Code Playgroud)

returns nothing …

javascript audio html5 asynchronous html5-audio

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