2012-02-20 1 views
9

Я очень новичок в Wami Recorder, и я никогда не работал с Flash вообще, поэтому на самом деле это может быть глупый вопрос.Как осуществляется Wami Recorder?

В целом, как же реализовать внедрение Wami Recorder? Я видел это на веб-сайте, и он отлично работает там, но когда я загружаю его и пытаюсь использовать его в localhost как часть Xampp, он не работает.

Если кто-то может написать Wami Recorder для чайников, ответьте, это было бы потрясающе.

Я использую это в CakePHP 2.0, если кто-то знает, как использовать его в этой структуре.

В основном все, что я пытаюсь сделать, это записать аудио, сохранить файл в каталог и получить информацию POST, чтобы иметь возможность сохранять определенные сведения о файле в базе данных.

ответ

15

Да, документация не очень ясна. Вчера я провел весь день, выясняя это. Вот простая реализация, которая работает на моей локальной машине. Следующие файлы хранятся в моем Apache корень документа в "/ TEMP/WAMI/тест", так что URL является "HTTP: // локальный/темп/WAMI/тест /":

index.html
рекордер. JS
save_file.php
Wami.swf

index.html

<!-- index.html --> 
    <html> 
    <head> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script> 
     <script src="https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script></script> 
     <script src="recorder.js"></script> 
    </head> 

    <body> 
     <div id="recorder"> 
      <button id="record">Record</button> 
      <button id="play">Play</button> 
     </div> 
     <div id="flash"></div> 
    </body> 

    <script> 
     // initialize Wami 
     Wami.setup({ 
      id: 'flash' // where to put the flash object 
     }); 

     // initialize some global vars 
     var recording = ''; 
     var recordingUrl = ''; 
     var playBackUrl = ''; 

     // get button elements 
     var record = $('#record'); 
     var play = $('#play'); 

     // define functions 
     function startRecording() { 
      recording = 'temp.wav'; 
      recordingUrl = 'http://localhost/temp/wami/test/save_file.php?filename=' + recording; 
      Wami.startRecording(recordingUrl); 
      // update button attributes 
      record 
       .html('Stop') 
       .unbind() 
       .click(function() { 
        stopRecording(); 
       }); 
     } 

     function stopRecording() { 
      Wami.stopRecording(); 
      // get the recording for playback 
      playBackUrl = 'http://localhost/temp/wami/test/' + recording; 
      // update button attributes 
      record 
       .html('Record') 
       .unbind() 
       .click(function() { 
        startRecording(); 
       }); 
     } 

     function startPlaying() { 
      Wami.startPlaying(playBackUrl); 
      // update button attributes 
      play 
       .html('Stop') 
       .unbind() 
       .click(function() { 
        stopPlaying(); 
       }); 
     } 

     function stopPlaying() { 
      Wami.stopPlaying(); 
      // update button attributes 
      play 
       .html('Play') 
       .unbind() 
       .click(function() { 
        startPlaying(); 
       }); 
     } 

     // add initial click functions 
     record.click(function() { 
      startRecording(); 
     }); 

     play.click(function() { 
      startPlaying(); 
     }); 
    </script> 

    </html> 

save_file.php

<?php 
    /* save_file.php */ 

    // get the filename 
    parse_str($_SERVER['QUERY_STRING'], $params); 
    $file = isset($params['filename']) ? $params['filename'] : 'temp.wav'; 
    // save the recorded audio to that file 
    $content = file_get_contents('php://input'); 
    $fh = fopen($file, 'w') or die("can't open file"); 
    fwrite($fh, $content); 
    fclose($fh); 

Это должно быть сделано. К сожалению, кажется, что не существует способа сделать паузу, а затем возобновить запись. Каждый раз, когда вы начинаете запись, он перезаписывает предыдущий звук. Также не представляется возможным получить информацию об аудиофайле (например, длина, размер). См. Файл рекордера Wami (recorder.js) для полного списка функций рекордера.

+0

Большое спасибо !!!! –

+0

Я собирался бросить ответ, но я не получил функцию записи – ronan

+0

Спасибо, работал как шарм! Убедитесь, что вы создали каталог, в котором вы хотите сохранить файл, доступный для записи :-) –