2013-01-07 48 views
9

Tôi đang cố gắng tạo một ứng dụng chỉnh sửa video Android. Tôi nhận thấy trong các nguồn SDK có một số lớp trong gói 'android.media.videoeditor' xuất hiện để làm những gì tôi cần; tuy nhiên, khi tôi thử và nhập chúng vào dự án Java của tôi, tôi không thể vì theo Eclipse chúng không tồn tại! Tôi đã kiểm tra nội dung của 'android.jar' và chắc chắn đủ, các lớp học bị thiếu. Một trong các lớp trong gói đó - MediaArtistNativeHelper.java - sử dụng JNI để gọi ra bất kỳ phương thức gốc nào cần, được thực hiện trong C++ từ những gì tôi có thể nói (điều này có nghĩa là tôi cần phải xây dựng chúng một cách riêng biệt hay không?).)Lớp trình chỉnh sửa video Android

Câu hỏi của tôi là, làm cách nào để sử dụng các lớp này trong dự án của mình?

Tôi đang phát triển ứng dụng bằng Eclipse trên máy Mac.

+0

Hey, có giải pháp nào không? –

+0

@Subra Xem câu trả lời của tôi. – bitek

+1

Tôi đã liên hệ với một người nào đó tại Google về điều này và được yêu cầu sử dụng MediaCodec thay vì những gì tôi đang cố gắng thực hiện. Gói trình chỉnh sửa video bị ẩn vì không được sử dụng. Tôi đã sử dụng MediaCodec và ffmpeg để giải quyết vấn đề của mình vì gói phương tiện Android không thực hiện chính xác những gì tôi cần. – Simon

Trả lời

7

Gói android.media.videoeditor là gói nội bộ/ẩn, vì Javadoc phía trên lớp/giao diện chứa chú thích {@hide} hoặc @hide.

Bạn không được phép sử dụng nó từ bên trong ứng dụng của mình và khi bạn thấy API không có trong android.jar chứa API công khai. FYI gói javadoc có thể được xem here.

Đối với việc thêm chức năng phương tiện truyền thông để ứng dụng của bạn sử dụng android.media package thay vào đó, trong đó:

Cung cấp các lớp học quản lý khác nhau giao diện phương tiện truyền thông trong âm thanh và video.

API phương tiện được sử dụng để phát và, trong một số trường hợp, hãy ghi phương tiện truyền thông tệp. Điều này bao gồm âm thanh (ví dụ: phát các tệp MP3 hoặc các tệp nhạc khác, nhạc chuông, hiệu ứng âm thanh trò chơi hoặc âm DTMF) và video (ví dụ: phát một video được truyền qua web hoặc từ bộ nhớ cục bộ).

lớp đặc biệt khác trong gói cung cấp khả năng phát hiện các khuôn mặt của người trong Bitmaps (FaceDetector), kiểm soát định tuyến âm thanh (để điện thoại hoặc tai nghe) và cảnh báo kiểm soát như nhạc chuông và rung điện thoại (AudioManager).

Nội dung của android.jar hiển thị những gì gói android.media chứa:

(Trích từ adt-bó-linux/sdk/nền tảng/android-17 /android.jar)

enter image description here

+0

Cảm ơn bạn, nhưng cách sử dụng https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/media/java/android/media/videoeditor/OverlayFrame.java này bằng cách sử dụng lớp MediaRecorder có sẵn .. ?? –

+1

@Subra Kiểm tra tài liệu gói android.media hoặc lấy mã nguồn cho [nền tảng/khung/cơ sở] (https://android.googlesource.com/platform/frameworks/base/) và xem lớp học nào từ Android Gói .media.videoeditor được sử dụng. – bitek

0

nội bộ và ẩn các gói không thể được truy cập tại thời gian biên dịch vì sdk android không có chúng.

Không có công việc dễ dàng nào cho việc này. Tuy nhiên, bạn có thể thử hướng dẫn này http://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-2-hacking-around/

Hướng dẫn này giải thích cách trích xuất tệp android.jar "đầy đủ" từ thiết bị để bạn có thể nhận các gói ẩn trong thời gian biên dịch. Khi bạn có các gói "ẩn" tại thời gian biên dịch, bạn có thể tạo ứng dụng của mình bằng các gói này. Điều này nghe có vẻ giống như một viên đạn bạc nhưng nó có nhược điểm lớn. Khi bạn sử dụng các API không chuẩn, tất cả các phiên cược sẽ bị tắt.Nếu các gói "ẩn" được thay đổi/sửa đổi trong các nâng cấp hệ điều hành trong tương lai, nó sẽ phá vỡ sản phẩm của bạn. Trong môi trường sản xuất, cách tiếp cận này là một công cụ xử lý giao dịch, nhưng đối với các ứng dụng được phát triển cho mục đích sử dụng cá nhân/học thuật, nó có thể là điều của bạn.

Lưu ý: Tôi đã không đích thân thử điều này, nhưng tìm thấy nó đôi khi trở lại khi đối mặt với một vấn đề tương tự như của bạn (câu trả lời của tôi là trong một số gói ẩn khác).

Các vấn đề liên quan