Pregunta

Soy muy nuevo en la grabadora WAMI, y nunca he trabajado con Flash, por lo que en realidad esta puede ser una pregunta tonta.

Básicamente, ¿cómo se hace para implementar la grabadora WAMI? Lo he visto en el sitio web, y funciona muy bien allí, pero cuando lo descargo e intento usarlo dentro de Localhost como parte de XAMPP, no funciona.

Si alguien pudiera escribir una grabadora WAMI para la respuesta de Dummies, eso sería totalmente increíble.

Estoy usando esto en CakePHP 2.0 si alguien sabe especialmente cómo usarlo dentro de ese marco.

Básicamente, todo lo que estoy tratando de hacer es grabar audio, guardar el archivo en un directorio y tener información de publicación para poder guardar ciertos detalles sobre el archivo en una base de datos.

¿Fue útil?

Solución

Sí, la documentación no es muy clara. Ayer pasé toda la tarde descubriéndolo. Aquí hay una implementación simple que funciona en mi máquina local. Los siguientes archivos se almacenan en mi raíz del documento Apache en "/temp/wami/test", por lo que la URL es "http: // localhost/temp/wami/test/"::

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

Deberias hacer eso. Desafortunadamente, no parece haber una forma de detenerse y luego reanudar la grabación. Cada vez que comienzas a grabarlo, sobrescribe el audio anterior. Tampoco parece haber una forma de recuperar información sobre el archivo de audio (por ejemplo, longitud, tamaño). Consulte el archivo de grabadora WAMI (Recorder.js) para obtener una lista completa de funciones de grabadora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top