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ライブラリをコンパイルすることは実際には非常に簡単です。
- Android NDK(また、Android SDKとADTプラグインを備えたEclipse)が必要です)をダウンロードして、簡単なプロジェクトを作成します。
- プロジェクトのディレクトリに「jni」というディレクトリを作成します。
- lameソースをダウンロードし、抽出して、すべてのソースをディレクトリlibmp3lameからjniディレクトリにコピーします。また、ラメソースのインクルードディレクトリにあるlame.hをコピーします。
- 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 ieee754_float32_t fast_log2(ieee754_float32_t x);
をこのextern float fast_log2(float x);
に置き換えます。- Androidプロジェクトのルートディレクトリに移動し、_
$pathtoandroidndk/ndk-build
_を実行すると、_limp3lame.so
_がコンパイルされます。
また、SOに関する次の質問は、Android用のlameをコンパイルした後のいくつかの問題を扱っているため、興味深いかもしれません。
上記の解決策は、以下を除いて私にとってはうまくいきました:
vector
ディレクトリを削除しないでくださいLOCAL_CFLAGS = -DSTDC_HEADERS