1

私のアプリのアルゴリズム:

1) PhoneGap CaptureAudio を使用して音声ファイルを録音します。

2) FileTransfer を使用してサーバーにファイルを保存します。

3) Media オブジェクトを使用してファイルを再生します。

ステップ 1 が完了し、recording-XXXXX.3gpp ファイルが取得されます。

ステップ 2 が完了し、recording-XXXXX.3gpp ファイルがサーバーにアップロードされます。

ステップ 3 に問題があります。3gpp ファイルを開くときにメディア オブジェクト エラーが発生する

   var my_media = new Media("http://myserver/getfile.aspx?file=filepath/recording-XXXXX.3gpp", function() { 
           console.log("playAudio():Audio Success");
    }, function(){
           alert('code: '    + error.code    + '\n' +
           'message: ' + error.message + '\n');
    });     
    my_media.play();

しかし、クエリを mp3 ファイルに変更すると、メディア オブジェクトは必要に応じて機能します。

何が問題なのかわかりません。できることの 1 つは、.3gpp を .mp3 に作成することですが、そのオプションは最終手段です。

これで私を助けてください。

Android タブレットで PhoneGap 2.4.0 を使用しています。

4

2 に答える 2

0

.3gp ではなく .3gpp の拡張子を使用するのはなぜですか?

また、IIS が 3gp ファイルを返し、正しいヘッダーで提供していると確信していますvideo/3gppか? デバイスではなくデスクトップ ブラウザからファイルの URL に移動するとどうなりますか?

IIS は、.3gpp 拡張子を使用する 3gp の MIME タイプを認識しない可能性があるため、ファイルを提供しません。これは、セキュリティ上の理由から、IIS はデフォルトで認識されていないファイル拡張子を提供しないためです。

また、mp3 が登録済みの MIME タイプであるが 3gp がそうでない場合、一方が機能するのに他方が機能しない理由が説明されます。

次の手順に従って、3gp MIME タイプを追加します。

%windir%\system32\inetsrv\appcmd set config /section:staticContent /+"[fileExtension='.3gp',mimeType='audio/3gpp']"
于 2013-07-09T21:36:01.183 に答える
0

解像度はわかりました。

ファイルをサーバーにアップロードするときは、ファイルを .3gpp ではなく .wav または .mp3 拡張子としてアップロードします。録音したファイルの名前を .3gpp から .wav または .mp3 に変更します

Media オブジェクトに URL を指定すると、プレーヤーはファイルをストリーミングして再生を開始します。

ファイルはサーバーにアップロードされ、拡張子が .wav または .mp3 に変更されますが、互換性のあるプラグインがインストールされていない場合、Windows Media Play を使用してデスクトップで再生することはできません。

于 2013-07-10T23:38:48.820 に答える