2011-09-21 108 views
0

對於一個特定的項目,我試圖編寫一個voicexml文件來播放一些音頻文件。我沒有關於播放文件的問題。但我需要一些指導來播放文件夾中的多個文件。我知道我必須使用ecmascript和標籤來做到這一點。但我無法弄清楚如何訪問文件夾來播放特定的wav文件。如何使用VoiceXML播放文件夾中的多個文件?

這裏是我的代碼播放1個音頻文件:

<?xml version="1.0" encoding="UTF-8"?> 
<vxml version="2.1" xmlns="http://www.w3.org/2001/vxml" xml:base="file://"> 
<var name="repeat" expr="session.user.repeat"/> 
<form id="loopblock"> 
    <block> 
     <if cond="repeat > 0"> 
     <prompt> 
      <audio src="file://provisioned/music.wav"/> 
     </prompt> 
     <assign name="repeat" expr="repeat - 1"/> 
     <goto next="#loopblock"/> 
     </if> 
     <disconnect/> 
    </block> 
</form> 
</vxml> 

我有一個文件夾,其中包括不同的.wav文件。

  • /provisioned/music/a.wav
  • /provisioned/music/b.wav
  • /provisioned/music/c.wav

我怎麼可以玩所有的人都沒有因爲任何人都可以自定義這個wav文件,所以他們一一調用。我需要掃描文件夾並使用VoiceXML進行播放。

我會很高興的任何建議。

回答

0

首先,VoiceXML無法掃描文件夾。
它需要其他編程語言。

例如(JSP - http://localhost:8080/example/get_audio_list.jsp

<?xml version="1.0" encoding="UTF-8"?> 
<% 
String audioListCSV = ""; 
File[] audioList = new File("/provisioned/music/").listFiles(); 
for (int i = 0; i < audioList.length; ++i) { 
    File audio = audioList[i]; 
    if (audio.isFile()) { 
     audioListCSV += "\'file:///" + audio.getAbsolutePath() + "\'"; 
     if (i + 1 < audioList.length) { 
      audioListCSV += ","; 
     } 
    } 
} 
%>  
<vxml version="2.1"> 
    <form> 
     <block> 
      <var name="audioList" /> 
      <assign name="audioList" expr="[<%=audioListCSV%>]" /> 
      <return namelist="audioList" /> 
     </block> 
    </form> 
</vxml> 

JSP被稱爲子對話框。

<?xml version="1.0" encoding="UTF-8"?> 
<vxml version="2.1"> 
    <script> 
     var audioList; 
    </script> 
    <form id="getAudioList"> 
     <subdialog name="get_audio_list" src="http://localhost:8080/example/get_audio_list.jsp"> 
      <filled> 
       <assign name="audioList" expr="get_audio_list.audioList"> 
       <goto next="#playAudioList" /> 
      </filled> 
     </subdialog> 
    </form> 
    <form id="playAudioList"> 
     <block> 
      <prompt bargein="true"> 
       <foreach item="i" array="audioList"> 
        <audio expr="i" /> 
       </foreach> 
      </prompt> 
     </block> 
     <block> 
      <disconnect /> 
     </block> 
    </form> 
</vxml> 
相關問題