0

特定のプロジェクトについて、いくつかのオーディオファイルを再生するためにvoicexmlファイルを作成しようとしています。ファイルの再生に問題はありません。しかし、フォルダ内の複数のファイルを再生するためのいくつかの指示が必要です。これを行うには、ecmascriptとtagを使用する必要があることを知っています。しかし、特定のwavファイルを再生するためにフォルダにアクセスする方法がわかりません。

これが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ファイルをカスタマイズできるので、1つずつ呼び出さずにすべてを再生するにはどうすればよいですか。フォルダをスキャンしてVoiceXMLで再生する必要があります。

何か提案をいただければ幸いです。

4

1 に答える 1

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>
于 2011-10-03T09:32:45.663 に答える