Как на самом деле реализован Wami Recorder?

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

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

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

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

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

1 ответов


да, документация не очень ясна. Вчера я потратил весь день на то, чтобы это выяснить. Вот простая реализация, которая работает на моей локальной машине. Следующие файлы хранятся под моим корнем документа Apache в "/ temp/wami / test", поэтому URL-адрес "http://localhost/temp/wami/test/":

.HTML-код
самописец.js
сохранить файл.в PHP
ЗВИ.SWF-файлом
.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 (recorder.js) для полного списка функций рекордера.