2011-09-21 2 views
0

특정 프로젝트의 경우 일부 오디오 파일을 재생하기 위해 voicexml 파일을 작성하려고합니다. 파일 재생에 문제 없습니다. 하지만 폴더에서 여러 파일을 재생할 때 필요한 지침이 필요합니다. 나는 이것을하기 위해 ecmascript와 태그를 사용해야 만한다는 것을 알고있다. 그러나 특정 wav 파일을 재생할 폴더에 액세스하는 방법을 알아낼 수 없습니다. 나는 다른 .WAV 파일을 포함하는 폴더가VoiceXML이있는 폴더에서 여러 파일을 재생하는 방법은 무엇입니까?

<?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> 

:

다음은 한 오디오 파일을 재생하려면 코드입니다.

  • /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>