Androidのラメのエンコーダをコンパイルします。 LameとAndroidプラットフォーム用のコンパイルのチュートリアルはどのようにして見つけることができますか?Android用にコンパイルされたラメMP3エンコーダ
おかげで、
Androidのラメのエンコーダをコンパイルします。 LameとAndroidプラットフォーム用のコンパイルのチュートリアルはどのようにして見つけることができますか?Android用にコンパイルされたラメMP3エンコーダ
おかげで、
は、Android用のラメコンパイル方法について良いblog postにするために使用がありますが、何らかの理由でそれがしばらくの間オフラインになっていますし、いくつかの危険な中国のサイトでのみ使用できます。
私はちょうど下記の内容をコピーします:AndroidのNDKを使ってAndroidのARMのアーチにラメエンコーダをコンパイル移植
を
私はAndroidマーケットでmp3エンコードapplication、 を探していましたと私はAndroidがmp3をサポートしていないと考えている理由は、ほとんどありません エンコードはmp3が特許技術であるためです。もう1つの理由は、 人は、 Androidネイティブ開発キットではなく、JavaプログラミングとAndroid SDKを好むと推測しています。
しかし、Androidを使用してAndroid用libmp3lameライブラリをコンパイルすると、 NDKは実際には非常に簡単です。
- Android NDK(Android SDKとEclipseにはADTプラグインが必要です)をダウンロードし、簡単なプロジェクトを作成します。
- プロジェクトのディレクトリに "jni"という名前のディレクトリを作成します。
- lameソースをダウンロードし、すべてのソースをディレクトリlibmp3lameからjniディレクトリにコピーします。また、lame.hのコピーは、lameソースのインクルードディレクトリにあります。
- 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)
- きれいなラメのソース、GNUのautotoolsのから残っているもの取り除く
Makefile.am
、Makefile.in
、libmp3lame_vc8.vcproj
:それは次のようになります。 、logoe.ico
,depcomp
、フォルダi386
、vector
。- 編集ファイル
jni/utils.h
、このextern float fast_log2(float x);
- で定義
extern ieee754_float32_t fast_log2(ieee754_float32_t x);
を交換するには、あなたのAndroidプロジェクトのルートディレクトリに移動し、$pathtoandroidndk/ndk-build
を実行し、あなたが行っている、あなたはlimp3lame.so
をコンパイルしています。また
、それは、Android用のラメをコンパイルした後、いくつかの問題を扱うように、あなたのために関心のあるかもしれない上、次の質問:
1.ベクトル・フラーを除去しないでください。いくつかのソースは、lame.hに "lame.h"を使用しています。ソースは
ffmpegで使用できる静的ライブラリとしてコンパイルするにはどうすればいいですか? – frankish
上記の溶液私のために働いた:
LOCAL_CFLAGS = -DSTDC_HEADERS
このリンクhttp://developer.samsung.com/technical-doc/view.doに従ってください:あなたはコンパイラフラグを追加することにより、コンパイルの警告を取り除くことができます