0

navigator.device.capture.captureAudioサウンドを録音してファイルパスを取得するために使用します。ただし、Media.play() で再生しようとすると、ブロック全体がスキップされます。詳細については、コードのスニペットを次に示します。

            navigator.device.capture.captureAudio(function(mediaFile){

                var checkerVar = "original value";

                var fullPath = mediaFile[0].fullPath;
                var mediaTest = new Media(fullPath, function(){
                    checkerVar = "new success value";
                    alert("Media loaded. Playing now.");
                    mediaTest.play();
                }, function(){
                    checkerVar = "new error value";
                    alert("Error with playback.");
                });

                alert(checkerVar);

            }, function(error){
                alert("Error:\n\n"+error);
            }, {limit: 1});

上記のコードでは、「新しい成功値」または「新しいエラー値」の代わりに「元の値」がプロンプトとして表示されるため、ブロック全体をスキップすると思われますmediaTest。私はすでに値を取得しようとしましたが、fullPath実際に新しく録音された *.3gpp サウンド ファイルへのパスを示しています。これは、3gpp をサポートするかどうか疑問に思います。

3gpp をサポートしていない場合、どのようなオプションがありますか?

編集: 3gppをサポートしています。var mediaTestコードのブロック全体をスキップする理由は何ですか?

4

1 に答える 1

0

サポートされている形式を確認してください。

http://developer.android.com/guide/appendix/media-formats.html

http://docs.phonegap.com/en/1.0.0/phonegap_media_capture_capture.md.html#MediaFile.getFormatData

はい、3gpもサポートしています

于 2013-01-11T08:18:48.837 に答える