在 phonegap 中播放捕获的音频

Posted

技术标签:

【中文标题】在 phonegap 中播放捕获的音频【英文标题】:Play captured audio in phonegap 【发布时间】:2013-03-05 11:30:07 【问题描述】:

我能够捕获音频并且我拥有捕获文件的完整路径,但我无法让它播放最近捕获的文件。

我在 ios 6.1 上使用 Phongap 2.5 和 Jquery Mobile。

代码:

        <script type="text/javascript" charset="utf-8">
            function captureSuccess(mediaFiles) 
                var i, len;
                var formatSuccess = function (mediaFile) 
                    document.getElementById('capture-data').innerhtml =
                    "Duration: <strong>" + mediaFile.duration + "</strong><br/>";
                ;

                for (i = 0, len = mediaFiles.length; i < len; i += 1) 
                    // uploadFile(mediaFiles[i]);
                    document.getElementById('capture-result').innerHTML = "<strong>" + (i+1) + " file(s), Path: " + mediaFiles[i].fullPath + "</strong><br/>";
                    mediaFiles[i].getFormatData(formatSuccess, formatError);
                    readDataUrl = mediaFiles[i].fullPath;
                ;

                console.log("captureImageSuccess");
            


            function captureError(error) 
                var msg = 'An error occurred during capture: ' + error.code;
                navigator.notification.alert(msg, null, 'Uh oh!');
            

            function captureAudio() 
                // Launch device audio recording application,
                // allowing user to capture up to 2 audio clips
                navigator.device.capture.captureAudio(captureSuccess, captureError, limit: 2);
            

            $("#audio-result").click(function() 
                function playAudio(mediaFiles) 
                var play = document.getElementById('audio-result').src =
                mediaFiles[i].fullPath;
            
                                     );

            </script>
    </head>
    <body>
        <button onclick="captureAudio();">Capture Audio</button> <br>

        <div class="result-block">
            Capture Result: <span id="capture-result"></span><br/>
            <span id="capture-data"></span><br/>
            <button id="audio-result">Play audio</button>
            </div>

    </body>
</html>

【问题讨论】:

【参考方案1】:

你可以播放你的媒体如下

var my_media = null;

// here src is the uri of your media
// Create Media object from src
my_media = new Media(src, onSuccess, onError);

// Play audio
my_media.play()

// Pause audio
function pauseAudio() 
    if (my_media) 
        my_media.pause();
    


// Stop audio
function stopAudio() 
    if (my_media) 
        my_media.stop();
    

【讨论】:

感谢您的提示。我尝试使用您建议的代码和以下 html 代码:&lt;a href="#" class="btn large" onclick="playAudio('mediaFiles[i].fullPath')"&gt;Play Audio&lt;/a&gt;,但它不起作用。我收到一条错误消息,提示它无法播放音频文件。

以上是关于在 phonegap 中播放捕获的音频的主要内容,如果未能解决你的问题,请参考以下文章

使用外部 Java 插件在 PhoneGap/Cordova 中捕获音频/视频

通过 phonegap 和 cordova for Android 播放音频

将音频剪切成背景音乐 - PhoneGap 应用程序

如何使用 PhoneGap 连续播放音频?

Phonegap录音和播放同时进行

Phonegap + iOS:如何使用 Media API 播放音频