web-dev-qa-db-ja.com

LameMP3エンコーダーはAndroid

Android用のlameエンコーダーをコンパイルしたいと思います。 LameのチュートリアルとAndroidプラットフォーム用のコンパイル)を見つけるにはどうすればよいですか。

ありがとう、

以前はAndroid用にlameをコンパイルする方法について良い ブログ投稿 がありましたが、何らかの理由でしばらくオフラインになっていて、一部の危険な中国のサイトでしか利用できません。

以下のコンテンツをコピーします。

コンパイルラメエンコーダーをAndroid ARM Arch using Android NDK

Android Marketでmp3エンコーディングアプリケーションを探していましたが、ほとんど見つかりませんでした。Androidがmp3エンコーディングをサポートしていないのは、mp3がもう1つの理由は、人々がJavaネイティブ開発キットよりもAndroidプログラミングとAndroid SDKを好むことです。

それにもかかわらず、Android Android NDKを使用して)のlibmp3lameライブラリをコンパイルすることは実際には非常に簡単です。

  1. Android NDK(また、Android SDKとADTプラグインを備えたEclipse)が必要です)をダウンロードして、簡単なプロジェクトを作成します。
  2. プロジェクトのディレクトリに「jni」というディレクトリを作成します。
  3. lameソースをダウンロードし、抽出して、すべてのソースをディレクトリlibmp3lameからjniディレクトリにコピーします。また、ラメソースのインクルードディレクトリにあるlame.hをコピーします。
  4. jni /Android.mkファイルを作成します。次のようになります。
_LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)`
LOCAL_MODULE    := mp3lame
LOCAL_SRC_FILES := bitstream.c fft.c id3tag.c mpglib_interface.c presets.c  quantize.c   reservoir.c tables.c  util.c  VbrTag.c
   encoder.c  gain_analysis.c lame.c  newmdct.c   psymodel.c
   quantize_pvt.c set_get.c  takehiro.c vbrquantize.c version.c
include $(BUILD_SHARED_LIBRARY)
_
  1. ラメソースをクリーンアップし、GNU autotools、_Makefile.am_、_Makefile.in_、_libmp3lame_vc8.vcproj_、_logoe.ico_、depcompから残っているものを削除します、フォルダ_i386_、vector
  2. ファイル_jni/utils.h_を編集し、定義extern ieee754_float32_t fast_log2(ieee754_float32_t x);をこのextern float fast_log2(float x);に置き換えます。
  3. Androidプロジェクトのルートディレクトリに移動し、_$pathtoandroidndk/ndk-build_を実行すると、_limp3lame.so_がコンパイルされます。

また、SOに関する次の質問は、Android用のlameをコンパイルした後のいくつかの問題を扱っているため、興味深いかもしれません。

32
MH.

上記の解決策は、以下を除いて私にとってはうまくいきました:

  • ソースディレクトリからvectorディレクトリを削除しないでください
  • コンパイラフラグを追加することで、コンパイル警告を取り除くことができます:LOCAL_CFLAGS = -DSTDC_HEADERS
9
James Zhang