Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

index.html
Recorder.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) для полного списка функций регистратора.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top