爱学习的小朋友 2022-05-12 23:27 采纳率: 88.9%
浏览 78
已结题

js ajax传递参数给php,php返回音频

问题遇到的现象和发生背景

jq ajax把文字传递到php,合成音频后返回url到网页的audio src中。下面的代码如何修改可以实现?

<?php
header("Content-type:audio/mp3");
$text=$_POST["text"];
$tok="25.f36013a4b505d41663e17207c89f7025.315360000.1967728808.282335-26218695";
$url="http://tsn.baidu.com/text2audio?tex=".$text."&lan=zh&cuid=23488517&ctp=1&tok=".$tok."&vol=15&spd=4&per=0";
$file=file_get_contents($url);
echo $file;
?>





```html
<html>
<head>
<meta charset="utf-8" />
<meta name="applicable-device"content="pc,mobile">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>测试ajax</title>
<script src="/jquery-2.2.4.min.js" type="text/javascript"></script>

<p id="art">多年以后,奥雷连诺上校站在行刑队面前,准会想起父亲带他去参观冰块的那个遥远的下午。当时,马孔多是个二十户人家的村庄,一座座土房都盖在河岸上,河水清澈,沿着遍布石头的河床流去,河里的石头光滑、洁白,活象史前的巨蛋。这块天地还是新开辟的,许多东西都叫不出名字,不得不用手指指点点。每年三月,衣衫褴楼的吉卜赛人都要在村边搭起帐篷,在笛鼓的喧嚣声中,向马孔多的居民介绍科学家的最新发明。他们首先带来的是磁铁。</p>

<audio src="" autoplay="autoplay" controls></audio>
<script>

var text=document.getElementById('art').innerHTML;

$.ajax({
url: '/v.php',
type: 'POST',
async: true,
data: {text: text},
success: function(data){
    text=data.text;
},
error:function(){
    
    alert('朗读失败,请联系管理员修复');
}
});

</script>


</html>


```

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2022-05-13 12:20
    关注

    source标签应该是不支持blob协议,直接用get提交数据,然后设置source的的src或者audio标签的src就行,但是get大小请求有限制。

    img

    <?php
    $ispost=isset($_POST["text"]);
    if($ispost||isset($_GET["text"])){
    header("Content-type:audio/mp3");
    $text=$ispost?$_POST["text"]:$_GET["text"];
    $tok="25.f36013a4b505d41663e17207c89f7025.315360000.1967728808.282335-26218695";
    $url="http://tsn.baidu.com/text2audio?tex=".$text."&lan=zh&cuid=23488517&ctp=1&tok=".$tok."&vol=15&spd=4&per=0";
    $file=file_get_contents($url);
    echo $file;
    die();
    }
    ?><html>
    <head>
        <meta charset="utf-8" />
        <meta name="applicable-device" content="pc,mobile">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>测试ajax</title>
    
        <p id="art">多年以后,奥雷连诺上校站在行刑队面前,准会想起父亲带他去参观冰块的那个遥远的下午。当时,马孔多是个二十户人家的村庄,一座座土房都盖在河岸上,河水清澈,沿着遍布石头的河床流去,河里的石头光滑、洁白,活象史前的巨蛋。这块天地还是新开辟的,许多东西都叫不出名字,不得不用手指指点点。每年三月,衣衫褴楼的吉卜赛人都要在村边搭起帐篷,在笛鼓的喧嚣声中,向马孔多的居民介绍科学家的最新发明。他们首先带来的是磁铁。</p>
        <audio autoplay="autoplay" controls>
    <source id="source" src="" type="audio/mp3">
    </audio>
    
        <script>
        source.src='/v.php?text='+encodeURIComponent(art.innerText)
    
        </script>
    
    
    </html>
    
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月21日
  • 已采纳回答 5月13日
  • 创建了问题 5月12日

悬赏问题

  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题