无法将音频源分配给源标签以响应 ajax 请求

Posted

技术标签:

【中文标题】无法将音频源分配给源标签以响应 ajax 请求【英文标题】:Unable to assign audio source to source tag in response of ajax request 【发布时间】:2018-08-17 13:48:23 【问题描述】:

我正在向 db 发送 ajax 请求并获取音频链接作为响应 链接在变量中是准确的,但在源标签中没有绑定。

这是我用来播放音频的html代码

function play()
   
       
       
<button id="play_btn" onclick="play()" class="playing"></button>
   <audio id="myAudio" >
    <source src="" id="audio_source" type="audio/mpeg">
   </audio>

这是获取和分配音频链接的功能

 $('#cmbSura').change(getSurah);
     function getAudio()
     
       $.ajax(
         url:'Temp_url',
               type: 'post',
               data: 
                 "_token": "toker generate",
                 "audio_id" : 12,
                     ,
                      beforeSend: function()
                          document.getElementById("wait").style.display = "block";
                         ,
                         complete: function()
                            
                         ,
                         success: function (response) 
                         
                          document.getElementById("wait").style.display = "none";
   link = "temp_url/audios/"+item.link_to_audio;
                  alert(link);
     $("audio #audio_source").attr('src',"'"+link+"'");   
                         
                       );
      
     
<button id="play_btn" onclick="getAudio()" class="playing"></button>
                              <audio id="myAudio" >
                                <source src="" id="audio_source" type="audio/mpeg">
                               </audio>

【问题讨论】:

不考虑第一个sn-p 这里的dataType 是什么?换句话说,服务器将回复的数据类型是什么?是JSON 吗? 不确定是否可以在这里使用,但您是否看到更改音频标签源的答案? ***.com/questions/9421505/… 返回服务器将返回 jason 数组 @BabarMalik 检查我的答案。 【参考方案1】:

试试这个:我不确定响应类型,但从你的编码我认为应该是JSON,所以我会处理它JSON

 $('#cmbSura').change(getSurah);
     function getAudio()
     
       $.ajax(
         url:'Temp_url',
         dataType: 'json',
               type: 'post',
               data: 
                 "_token": "toker generate",
                 "audio_id" : 12,
                     ,
                      beforeSend: function()
                          document.getElementById("wait").style.display = "block";
                         ,
                         complete: function()
                            
                         ,
                         success: function (item) 
                         
                          document.getElementById("wait").style.display = "none";
   var link = "temp_url/audios/"+item.link_to_audio;
                  alert(link);
     $("audio #audio_source").attr('src', link);   
                         
                       );
      
     
<button id="play_btn" onclick="getAudio()" class="playing"></button>
                              <audio id="myAudio" >
                                <source src="" id="audio_source" type="audio/mpeg">
                               </audio>

将其复制到您的文本编辑器并将_token 更改为适当的,并且不要忘记包含jQuery

【讨论】:

以上是关于无法将音频源分配给源标签以响应 ajax 请求的主要内容,如果未能解决你的问题,请参考以下文章

有没有比这更简单的通过 PHP 请求特定音频文件的方法?

从 HTML5 视频中获取音频

使用 HTML5 播放器(音频标签)以确保安全时如何在 HTTP 请求中传递授权标头

RARP的工作原理

使用来自音频标签的源使用 AudioContext

将 src 注入 HTML5 的音频标签 [重复]