Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在div内创建多音频标签并播放MP3_Javascript_Jquery_Ajax_Html5 Audio - Fatal编程技术网

Javascript 在div内创建多音频标签并播放MP3

Javascript 在div内创建多音频标签并播放MP3,javascript,jquery,ajax,html5-audio,Javascript,Jquery,Ajax,Html5 Audio,我有ajax数据,我从数据库中获取base64 Mp3数据,成功后我可以使用音频标签播放Mp3,但当我从数据库中获取多个base64数据时,我必须装箱多个音频标签,并且我必须将base64链接到每个音频标签。下面是我的代码: ///Html <div id="container"> <audio id="audio" controls="controls" autobuffer="autobuffer" autoplay="autoplay"></audio&

我有ajax数据,我从数据库中获取base64 Mp3数据,成功后我可以使用音频标签播放Mp3,但当我从数据库中获取多个base64数据时,我必须装箱多个音频标签,并且我必须将base64链接到每个音频标签。下面是我的代码:

 ///Html
<div id="container">
 <audio id="audio"  controls="controls" autobuffer="autobuffer" autoplay="autoplay"></audio>
</div>

///Ajax call getting the base64 from DB and adding has source to audio tag
 $.ajax({
    type: "POST",
    dataType: "json",
    url:  'xxxx/xxxx/xxxxx',
    data: xxxxxx,
    success: function (data) {
        if (data[0].Base64 != null) {
            $.each(data, function (key, value) {
            alert(key + ": " + value);
            $("#audio").html("<source src=\"data:audio/Mp3;base64," + value.Base64 + "\"/>"); });
        } else {
            alert("No Data")
        }
    }
 });
///Html
///Ajax调用从DB获取base64并将has source添加到audio标记
$.ajax({
类型:“POST”,
数据类型:“json”,
url:'xxxx/xxxx/xxxxx',
数据:xxxxxx,
成功:功能(数据){
if(数据[0].Base64!=null){
$。每个(数据、函数(键、值){
警报(键+”:“+值);
$(“#音频”).html(“”;});
}否则{
警报(“无数据”)
}
}
});
each()
循环中,可以为每个条目创建新的DOM对象,并将其附加到
容器中:

var audio = $('<audio><source src="data:audio/Mp3;base64,' + value.Base64 + '"/>');
$("#container").append(audio);
var audio=$('');
$(“#容器”).append(音频);
试试这个

<div id="boxes">
    <li id="nyan" class="audioclick"><audio src="song.mp3"/></li>
    <li id="duck" class="audioclick"><audio src="duck.mp3"/></li>
    <li id="duck" class="audioclick"><audio src="cat.mp3"/></li>
</div>

$(function(){
    $('#boxes').on('click','audioclick',function(){
        var $eq = $(this).eq(),
            audio = $('audio').get($eq);

        if (audio.paused){
            audio.play();
        } else {
            audio.pause();
        }
    });
});

  • $(函数(){ $(“#框”)。在('click','audioclick',function()上{ var$eq=$(this.eq(), 音频=$('audio').get($eq); 如果(音频暂停){ 音频播放(); }否则{ audio.pause(); } }); });
    您可以遵循以下类型的结构:

    ///Ajax调用从DB获取base64并将has source添加到audio标记
    $.ajax({
    类型:“POST”,
    数据类型:“json”,
    url:'xxxx/xxxx/xxxxx',
    数据:xxxxxx,
    成功:功能(数据){
    if(数据[0].Base64!=null){
    $。每个(数据、函数(键、值){
    警报(键+”:“+值);
    
    $(“#container”).append(“thx,它工作了,我在它里面做了点改变”var audio=$(“”);audio.html(“”)