7

私は現在、ユーザーがMP3オーディオファイルを選択できるアプリに取り組んでいます。その後、ファイルは私のアプリによって処理されます。

この処理では、アプリケーションはオーディオファイルをデコードして生のPCM出力を取得する必要があります。

MP3をデコードするには、次の2つのオプションがあります。

  1. Androidシステムを使用してMP3をデコードし、PCMデータを取得します。
  2. MP3ライセンス料を支払うことなく、電話でMP3を自分でデコードします。

私の質問は、#1が技術的に可能かどうかです。そして#2については、電話のMP3ライセンスがアプリもカバーしているかどうか。

4

3 に答える 3

2

私の知る限り、Androidが提供するMP3をデコードする方法はありません。

私は過去にJLayerを使用したことがあり、MP3処理に推奨できます。NDKをc++ライブラリで使用する方が速いかもしれませんが、Javaを維持したい場合は、それを使用します。それでもリアルタイムよりも高速で、平均ビットレート3分のMP3ですべてのフレームをデコードするのに約30秒かかります。これはGalaxyS(1GHz)を使用しているため、新しい電話の方が高速です。

ライセンスに関しては、私はあなたを助けることはできません。JLayer自体はLGPLですが、MP3ライセンスの世界は、使用済みのモーターオイルよりも濁っています。具体的な答えを数日探した後、私はあきらめてそれをやりました。そもそも誰が免許を持っているのか、世界全体で分かれているようです。

于 2012-06-29T01:43:18.453 に答える
2

Androidシステムはmp3ファイルをデコードできるようになりました。ここでは、Androidプラットフォームによって提供されるメディアコーデック、コンテナ、およびネットワークプロトコルのサポートについて説明しています。

MedieCodecは、メディアファイルをエンコードおよびデコードするための非常に強力なフレームワークです。

于 2017-12-03T15:15:45.137 に答える
0

オプション1は絶対に不可能です(ICS +デバイスをターゲットにし、OpenSLでMP3をデコードするためのネイティブCコードを作成する意思がない場合)。jLayerのGeobits推奨は良いものです。ほとんどの場合、jLayerの処理は簡単です。これが役立つ良いブログ投稿です:http://mindtherobot.com/blog/624/android-audio-play-an-mp3-file-on-an-audiotrack/

于 2013-03-04T01:47:18.460 に答える