不知道 合成的文件大小.这个是一个系统设计.
如果是用于SESSION 验证码朗读的话,把文件名存到 SESSION里.声音文件就统一为getsound.php?temp=.mp3 就行了.

解决方案 »

  1.   

    呃..不太懂你的意思..
    我这个程序是将button.javascript和php源码都写在同一个php文件里
    当执行一次该php文件就会生成一个wav文件.
    当按下button会调用javascript,
    我的问题是javascript如何去播放当该次执行php文件时产生的wav文件
    因为每次执行一次都会生成一个不同名称的wav文件..不知道该如何设定..会有这个问题的原因是一开始是只有一个wav文件.每次新产生的内容会覆写掉旧的内容,但文件名称都一样
    此时在客户端若按下button会自动生成一个暂存文件..播放会根据该文件的内容来播..当sever端的内容更新
    客户端并不会将更新的文件再次存入暂存夹.就导致要清除掉暂存的文件重新执行一次php文件才会再次存入更新的内容,
    简单的说,就是客户端若不消除暂存文件就会一直播第一次的wav文件的内容
      

  2.   

    用户进入时,生成一个随机的文件名.保存在SESSION中.
    要操作,就操作 SESSION 中对应的文件.如更新声音等等.播放时.从SESSION 中取出文件名.并读出音频流. 而至于你说的暂存文件.则是另一个问题.就是如何让浏览器不缓存.一般的做法是给声音文件加一个随机时间数做参数.这样浏览器会认为请求的是不同的文件.
    还可以在服务端发送音频流的前面,发送'no-cache'的HTTP头.
      

  3.   

    我现在是把音讯的路径放入SESSION中
    <php?
    $date = date("md H-i-s");
    for($i=1;$i <99;$i++)
    {
    $seq=sprintf("%02d",$i);
    $file="tmp_".$date."_".$seq.".wav"; 
    }session_register("file");
    $_SESSION["file"]=$file;
    ?>请问要如何在javascript中取用该SESSION的file内容呢?
    <script>
    function play()

    document.getElementById('sound').innerHTML = " <embed src= 音檔 hidden=true > </embed>";
    }
    </script>音档名称的格式: tmp_0517 08-21-24_01.wav
    月日 时-分-秒_同一时间不同的编号
      

  4.   

    <script> 
    function play() 
    {  
    document.getElementById('sound').innerHTML = "  <embed src=getsound.php?ext=.mp3 hidden=true >  </embed>"; 

    </script> 
    getsound.php
    <?php....
    session_start();$targetFile = $_SESSION['file'];
    ...
    检测 $targetFile 是否存在..存在 
    读取 并 
    发送 WAV MIME头.
    再发送WAV文件读取内容.....
    ?>