2012-02-20 19 views
9

Jestem nowicjuszem w Wami Recorder i nigdy nie pracowałem z Flash, więc może to być głupie pytanie.W jaki sposób implementuje się Wami Recorder?

Zasadniczo, jak można wdrożyć rejestrator Wami? Widziałem go na stronie i działa tam świetnie, ale kiedy go pobiorę i spróbuję użyć go w localhost jako część Xampp, to nie działa.

Jeśli ktoś mógłby napisać odpowiedź Wami Recorder for Dummies, byłoby to całkowicie niesamowite.

Używam tego w CakePHP 2.0, jeśli ktoś wie szczególnie, jak go używać w tym środowisku.

W zasadzie wszystko, co próbuję zrobić, to nagrać audio, zapisać plik w katalogu i mieć informacje POST, aby móc zapisać pewne szczegóły dotyczące pliku do bazy danych.

Odpowiedz

15

Tak, dokumentacja nie jest bardzo jasna. Spędziłem całe popołudnie wczoraj, zastanawiając się nad tym. Oto prosta implementacja, która działa na moim komputerze lokalnym. Następujące pliki są przechowywane w moim katalogu głównego Apache w "/ temp/Wami/test", więc URL "http: // localhost/temp/Wami/test /":

index.html
rejestrator. 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); 

To powinno wystarczyć. Niestety, nie wydaje się, aby można było wstrzymać i wznowić nagrywanie. Każde rozpoczęcie nagrywania powoduje zastąpienie poprzedniego dźwięku. Nie ma również sposobu na uzyskanie informacji o pliku audio (np. Długość, rozmiar). Zobacz plik rekordera Wami (recorder.js), aby uzyskać pełną listę funkcji rejestratora.

+0

Dziękuję bardzo! –

+0

chciałem rzucić odpowiedź, ale nie dostałem funkcji nagrywania – ronan

+0

Dzięki, pracowałeś jak czar! Upewnij się, że utworzysz katalog, w którym chcesz zapisać plik do zapisu :-) –

Powiązane problemy