Как сохранить файл перекодирования как файл .wave

Я хочу сохранить звук, когда запрос vxml отправляется для Ivr, я разрабатываю код Ivr следующим образом.

<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.1">
 <form>
    <record name="myrecording" beep="true">
      <prompt>
        Please record a message after the beep.
      </prompt>
      <filled>
        <prompt>
          You just recorded the following message: <value expr="myrecording"/>
        </prompt>
      </filled>
    </record>
  </form>
</vxml>

Я хочу получить сообщение перекодировать и после воспроизведения. как сделать этот вопрос? Я хочу ответить в java.


person Thilina Sampath    schedule 23.09.2015    source источник


Ответы (1)


Вы можете сохранить записанное сообщение, добавив тег с вашей переменной записи, и обработать запрос на отправку, используя код на стороне сервера, такой как PHP/JSP/ASPX. Пример PHP включен:
Изменить: добавление record.jsp, который использует общие ресурсы apache: http://commons.apache.org/proper/commons-fileupload/
также изменена запись.vxml для отправки данных в запись.jsp, запись.php сохраняется в качестве ссылки

"запись.vxml"

<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.1">
    <form>
        <record name="myrecording" beep="true">
            <prompt>
                Please record a message after the beep.
            </prompt>
            <filled>
                <prompt>
                    You just recorded the following message: <value expr="myrecording"/>
                </prompt>
                <submit expr="record.jsp" method="post" namelist="myrecording" enctype="multipart/form-data" />      
            </filled>
        </record>
    </form>
</vxml>

"запись.php"

<?PHP
header('Cache-Control: no-cache');
error_reporting (0);
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
echo "<vxml version=\"2.0\">";
echo "<form id=\"main\">";
echo "<block>";
if ($HTTP_POST_FILES) {
foreach ($HTTP_POST_FILES as $key => $value) {
  foreach ($value as $Filename) {
   if (strpos($Filename, "WINNT")) { $ServerSide = $Filename; }
   if (strpos($Filename, ".wav")) { $ClientSide = $Filename; }
  } // for each statement
  $ServerSide = str_replace("\\\\", "/", $ServerSide);
  if (!copy($ServerSide, "c:/audio-storage/temp.wav")) {
   echo "Could not save filename: " . $ServerSide;
  } // if statement
  else {
   echo "Successfully saved filename: " . $ServerSide;
  } // else statement
} // for each statement
} // if statement
echo "</block>";
echo "</form>";
echo "</vxml>";
?>

record.jsp

<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="org.apache.commons.fileupload.servlet.*"%>
<%@ page import="org.apache.commons.fileupload.disk.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.Date"%>
<%@ page import="java.text.DateFormat"%>
<%@ page import="java.text.SimpleDateFormat"%>
<?xml version='1.0'?>
  <vxml version="2.1">
    <form>
    <%
      DateFormat dateFormat = new SimpleDateFormat("yyyy_MM-dd_HH:mm:ss");
      Date date = new Date();
      boolean isMultipart = ServletFileUpload.isMultipartContent(request);
      FileItemFactory factory = new DiskFileItemFactory();
      ServletFileUpload upload = new ServletFileUpload(factory);
      List fileItems = null;

      try {
        fileItems = upload.parseRequest(request);
      } catch (Exception e) {
        e.printStackTrace();
      } 

      try {
        Iterator iter = fileItems.iterator();

        while (iter.hasNext()) {
          FileItem item = (FileItem) iter.next();
          String newFileName = "Recording-" + dateFormat.format(date);
          String inputFilePath = "c:/audio-storage/"+ newFileName + ".wav";
          File file = new File(inputFilePath);

          try {//Writing the wav file
            item.write(file);
          } catch (Exception e) {
            e.printStackTrace();
          }
        }
      } catch (Exception e) {
        e.printStackTrace();
     }
    %>
    <block>
      <prompt> Audio upload complete! </prompt>
    </block>
  </form>
</vxml>
person Ahmed Gawad    schedule 25.09.2015
comment
пожалуйста, ответьте, используя java, jsp, в веб-службе Restful. - person Thilina Sampath; 29.09.2015