Tôi muốn biên dịch bộ mã hóa lame cho Android. Làm thế nào tôi có thể tìm thấy các hướng dẫn cho Lame và biên dịch của nó cho nền tảng Android.Biên dịch mã hóa Lame MP3 cho Android
Cảm ơn,
Tôi muốn biên dịch bộ mã hóa lame cho Android. Làm thế nào tôi có thể tìm thấy các hướng dẫn cho Lame và biên dịch của nó cho nền tảng Android.Biên dịch mã hóa Lame MP3 cho Android
Cảm ơn,
Đã từng có một tốt blog post về cách biên dịch què dành cho Android, nhưng đối với một số lý do nó được ẩn trong một thời gian và chỉ có sẵn trên một số trang web tinh ranh của Trung Quốc.
tôi sẽ chỉ sao chép các nội dung dưới đây:
porting biên soạn encoder què để ARM Android vòm sử dụng Android NDK
tôi đang tìm kiếm một ứng dụng mă hóa file mp3 trong Android Market, và tìm thấy rất ít, lý do tôi nghĩ rằng Android không hỗ trợ mp3 mã hóa là bởi vì mp3 được cấp bằng sáng chế công nghệ. Một lý do khác là tôi người đoán thích lập trình Java và Android SDK hơn là bộ phát triển gốc của Android.
Tuy nhiên, biên soạn thư viện libmp3lame cho Android bằng Android NDK thực sự rất dễ dàng.
- tải xuống Android NDK (bạn cũng cần SDK Android và Eclipse với plugin ADT) và tạo dự án đơn giản.
- tạo thư mục có tên "jni" trong thư mục của dự án của bạn.
- tải xuống các nguồn lame, trích xuất, sao chép tất cả các nguồn từ thư mục libmp3lame vào thư mục jni. Cũng sao chép lame.h mà nằm trong thư mục bao gồm các nguồn lame.
- tạo tệp jni/Android.mk. nó sẽ giống như thế này:
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)
- nguồn què sạch, loại bỏ những gì còn lại từ autotools GNU,
Makefile.am
,Makefile.in
,libmp3lame_vc8.vcproj
,logoe.ico
,depcomp
, thư mụci386
,vector
.- chỉnh sửa tập tin
jni/utils.h
, và thay thế định nghĩaextern ieee754_float32_t fast_log2(ieee754_float32_t x);
với điều nàyextern float fast_log2(float x);
- đi vào thư mục gốc của dự án Android của bạn và chạy
$pathtoandroidndk/ndk-build
và bạn đã hoàn tất, bạn sẽ phảilimp3lame.so
biên soạn.
Ngoài ra, những câu dưới đây trên SO có thể được quan tâm cho bạn, vì nó thỏa thuận với một số vấn đề sau khi biên dịch què dành cho Android:
1. Không tháo bộ tách vector; 2. Một số nguồn bao gồm lame.h sử dụng "lame.h" một số nguồn bằng cách sử dụng
Làm thế nào để biên dịch nó như một thư viện tĩnh có thể được sử dụng với ffmpeg? – frankish
Các giải pháp trên đã làm việc cho tôi ngoại trừ:
vector
thư mục từ thư mục nguồnLOCAL_CFLAGS = -DSTDC_HEADERS
theo liên kết này http://developer.samsung.com/technical-doc/view.do? v = T000000090 – sonida