問題タブ [3gp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1521 参照

javascript - Android Cordova で録音した 3gp 音声を別の場所で再生する

モバイル デバイスの Cordova アプリでオーディオを録音し、それをデスクトップ コンピューターの Web アプリケーションで再生できるようにしたいと考えています。ただし、厄介なコーデックの問題が発生しています。

コルドバのドキュメントによると:

Android デバイスは、オーディオをアダプティブ マルチレート形式で録音します。指定したファイルは .amr 拡張子で終わる必要があります。

これは間違っているようです。ここの情報によると、.amr ファイルには次で始まるヘッダーが必要です。

ただし、Nexus 7 のオーディオ ファイルには次のようなヘッダーがあります。

これは、.3gp 拡張子が必要であることを示しているようです。

さらに、どちらの形式についても、(Cordova 以外の) ネイティブ ブラウザー サポートはないと思います。JavaScript amr 再生ライブラリを見つけましたが、.3gp ファイル (つまり、android が生成するファイル) を変換できません。.3gp ファイルをデコードするために同様のアプローチを使用できると確信していますが、これは困難な作業のように思えます。私はそれを避けることを望んでいます。他の誰かがそれをやりたいと思ったら、私は永遠に感謝します.

Cordova Media API が生成するフォーマットを変更する方法がない場合は、デコーダーが必要になります。純粋な JavaScript デコード ソリューションが理想的ですが、フラッシュ コンバーターも同様に優れています。私が検討した他の可能性には、いくつかの問題があります。

1 つの可能性は、別のアプリを使用して変換を行うことです。たとえば、Android の場合は ffmpeg です。Cordova からインテントを起動するには、Phonegap Build が提供していないプラグインが必要であり、ユーザーは別のアプリをインストールして操作する必要があるため、それは避けたいと思います。

別の可能性は、クラウドでデコードを行うことです。可能であれば、独自の Web サービスを実行したくありません。encoding.com を試してみたところ、オーディオ ファイルの 1 つを mp4 に正常に変換できましたが、まだ Dropbox ファイル ウォッチをサポートしていません。また、たとえば HIPAA が原因で、音声ファイルを暗号化する前に暗号化する必要がある場合、クラウドのデコードは不可能ではないにしても、非常に複雑になります。

助けてください。ありがとうございました。

0 投票する
1 に答える
1122 参照

android - ライブ ビデオ ストリームからフレームを取得する

MediaRecorder クラスを使用して、Android 携帯のカメラからコンピューターにライブ ビデオをストリーミングしています。

それが基本的な考え方です。ですので、この流れをリアルタイムでお見せしたいと思います。私の計画は、FFMpeg を使用して最新のフレームを .bmp に変換し、新しいフレームがあるたびに C# プログラムで .bmp を表示することです。

問題は、録音を停止するまでヘッダーがないことです。なのでヘッダーがないとFFMpegは使えません。私はspydroidとRTPの使用を見てきましたが、さまざまな理由でこの方法を使用したくありません.

これを簡単に行う方法についてのアイデアはありますか?

0 投票する
1 に答える
305 参照

android - 拡張形式で 3gp ファイルが検出されない

特定の拡張機能で、sd カードのフォルダー内のファイルを確認します。.3gp ファイルは、可能な形式でリストされていますが、このコードによって認識されないように見えることを除いて、すべてうまくいきます。何がこれを引き起こしているのでしょうか?

0 投票する
1 に答える
1044 参照

android - 3gp オーディオと 3gp ビデオを区別する方法

データベースに保存せずに、コンテンツ プロバイダーからビデオに直接アクセスしています。しかし、他のビデオや 3gp ビデオと一緒に 3gp オーディオ ファイルを提供しています。動画ファイルのみをフィルタリングするにはどうすればよいですか。私は API 8 で作業しています。

0 投票する
0 に答える
662 参照

android - Androidエミュレーターでビデオファイルをダウンロードできません

3pg ビデオ ファイルをダウンロードするコードは次のとおりです。たぶん、何が悪いのかについての考えを私に与えることができます。本当に助けが必要です。ファイルをダウンロードできません:

引用符

奇妙なことに、メソッド connection.getContentLength() がファイル長の代わりに -1 を返すことがあります。

0 投票する
1 に答える
3741 参照

android - Android サービスを使用して音声を録音する - ファイルが作成されない

現在、アプリケーションを使用して、メイン スレッドではなく Android サービスとして記録を開始しています。しかし、これを使用してサービスを停止した後:録音オーディオファイルが見つかりません

以下は Service の私のコードです:

0 投票する
1 に答える
384 参照

android - 一部のデバイスで Android VideoView が *3.gp ファイルを再生しない

こんばんは、次の問題があります。VideoViewで動画フォーマット*.3gpを再生したい。私はこのコードを使用しようとしました:

エミュレーターと HTC Desire S ではすべて正常に動作しています。しかし、中国のタブレット Onda V972 があり、毎回「ビデオの再生中にエラー」が発生します。

この問題を解決できるかどうか教えてください。どうもありがとう。ビデオファイルを VideoView にロードする別の方法があるのではないでしょうか?

更新 21.06:

タブレットのファームウェアを更新したところ、ビデオは再生されますが、ループしなくなりました。次のコードを試してみましたが、結果は同じです。HTC とエミュレーターはうまく機能していますが、タブレットはビデオをループしません。*.mp4 も試しましたが、すべて同じです:

問題は、すべてのデバイスでビデオをループさせるにはどうすればよいかということです。

0 投票する
1 に答える
1943 参照

android - Android 2.x での Android VideoView エラー 1、-1004

VideoView でサーバーからリモート ビデオ (.mp4) を再生しようとしています。私の HTC One S (4.1.1) ではすべて正常に動作しますが、Android 2.x デバイスで試してみるとすぐに、ビデオを再生できないというメッセージが表示されます。LogCat ではエラー 1、-1004 を参照してください。 . また、クライアント側でファイルを開くことができませんでした。サーバー側を試しています。

もちろん、Google で見つけたエラーは、ファイルを読み取れないことと関係があります。マニフェストに INTERNET アクセス許可が設定されていることを確認しました。また、One S で動作するファイルが利用可能であることもわかっています。したがって、私の唯一のオプションは、以前の Android デバイスでは読み取ることができないコーデックです。そこで、Adobe Media Encoder で変換してみました。3GPP を含むさまざまな設定に変換しましたが、成功しませんでした。

動画ファイルを Android 用に変換して Android 2.x で動作させる経験のある人はいますか?

乾杯大安

0 投票する
1 に答える
2442 参照

java - AMR-NB ファイルから音声フレームを抽出する

AMR ファイルから各フレームを抽出するアルゴリズムを作成しました。ファイルの最初の 6 バイトがヘッダーであり、次の情報がオーディオ フレームであると考えました。各オーディオ フレームは、フレーム ヘッダーとオーディオ データで構成されます。フレーム ヘッダーは、フレームのサイズをバイト単位で示します (CMR モード テーブルを使用 - http://www.developer.nokia.com/Community/Wiki/AMR_format )。フレーム サイズは、フレームの 1 バイト目 -> 2 ビット目から 5 ビット目に格納され、MSB を 1 ビット目として数えます。

アルゴリズムが機能せず、各バイトを 2 進数 (0 と 1) で画面に表示することにしました。フレーム サイズの数値が 7 よりも大きく、CMR テーブルに 0...7 の値しかない場合があります。

以下は CMR テーブルです。

私の出力(amrファイルからの各バイト)は次のとおりです。

バイト番号 6 を取得しました: 10011110 -> 0011 は番号 3 で、対応する 3 の CMR 値は 18 です。18 バイトをスキップし、バイト番号に到達します。6+18 = 24: 00000000 - 0 の CMR 値は 13 で、別の 13 バイトをスキップします -> 24+13=37: 01101110 -> 1101is 13 WHICH ISN'T IN CMR table

私が間違っていることは何ですか?バイナリ形式での印刷は正しいと思います。以下は、各フレームを読み取るためのアルゴリズムです (バイナリの方法を表示するためではありません)。

[EDIT]

byte から BitSet への変換が間違っているため、アルゴリズムが失敗するようです。バイト番号 6 では、数値 121 で表されるはずですが、誤って番号 158 で表されます。また、同じ変換を使用するため、バイナリ出力も間違っています。変換方法を確認しませんでした(ここには投稿しませんでした)。迷惑をかけてごめんなさい。