2012-11-05 44 views
6

Tôi cần tạo trình phát video có thể thay đổi dần tốc độ phát lại từ 0 đến khoảng 200%. Nó phải được thực hiện rất nhanh, vì nó sẽ được chơi phim HD ghi ở framerates cao (60 FPS). Độ phân giải thấp hơn có thể được sử dụng nếu không thể hỗ trợ HD.Tốc độ phát lại video thay đổi trên Android

Mã chỉ cần chạy trên máy tính bảng Android tương đối cao với bộ giải mã h264 phần cứng và ICS (không có Jelly Bean có sẵn cho máy tính bảng đích).

Tôi không tìm thấy bất kỳ hỗ trợ nào để thay đổi tốc độ phát lại video trong hệ thống Android và tôi nghi ngờ mình cần đào sâu vào JNI để đến đó, nhưng muốn hỏi ở đây trước nếu có ai đó có một số mã, đề xuất hoặc con trỏ có thể giúp tôi.

Trả lời

1

Tôi đã được nhìn vào làm một cái gì đó tương tự, và đây là một số phát hiện của tôi có thể hữu ích cho bạn:

  1. Nếu bạn đã tải về các ndk r7 android hay muộn, ndk-> samples-> native-media là một dự án mẫu sử dụng jni để thực thi trình phát phương tiện Android gốc.
  2. Điều này sử dụng thư viện OpenMAXAL.h (có trong ndk): Bạn sẽ thấy một giao diện có tên là XA_IID_PLAYBACKRATE. Có tại decent reference card, nhưng mỏng trên mẫu. Nghe có vẻ như nó nên làm những gì chúng tôi muốn mặc dù.
  3. Mẫu chỉ ra một minSdkVersion = 14, vì vậy nó sẽ hoạt động trên thiết bị ICS của bạn.
  4. Tôi đã thử nghiệm này trên chỉ ICS + thiết bị sẵn cho tôi, một 16GB ASUS Vỏ đựng Nexus 7 chạy 4.2 (Jellybean), và tôi đã nhận các kết quả sau trong nhật ký của tôi chú ý (bỏ qua tuyên bố gỡ lỗi của riêng tôi)

    01-15 14:19:33.384: W/libOpenSLES(6037): class MediaPlayer interface 1 requested but unavailable MPH=75 
    01-15 14:19:33.384: W/libOpenSLES(6037): Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED) 
    01-15 14:19:33.384: A/libc(6037): jni/native-media-jni.c:409: Java_com_example_nativemedia_NativeMedia_createStreamingMediaPlayer: assertion "XA_RESULT_SUCCESS == res" failed 
    01-15 14:19:33.384: A/libc(6037): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 6037 (ple.nativemedia) 
    

    trong chức năng tải lên luồng truyền thông (hoặc tệp) và tạo phiên bản trình phát media gốc. Các lỗi này khá rõ ràng chỉ ra rằng tính năng này không được hỗ trợ trên thiết bị/bộ giải mã của tôi, hệ điều hành của tôi hoặc loại tệp của tôi. Tôi không thực sự chắc chắn một (hoặc kết hợp) nó là gì, nhưng nếu nó là một trong những đầu tiên, nó có thể có nghĩa là không có rất nhiều thiết bị ra khỏi đó sẽ hỗ trợ các tính năng mà bạn muốn. Có lẽ Nexus7 là một ngoại lệ, nhưng đó vẫn là một phần khá lớn của không gian máy tính bảng, thật không may, và có nghĩa là chúng ta không thể mong đợi nhiều nhất quán trong các thiết bị khác.

Nếu bất kỳ ai theo dõi những ghi chú này và thành công trong việc chạy, hãy bình luận và cố gắng làm việc này và sẽ cập nhật bất kỳ tiến bộ nào.

2

Tôi có trình phát tùy chỉnh Android từ vitamio. Trong đó, trình phát đa phương tiện có tùy chọn tốc độ setplayback. tức là mMediaPlayer.setPlaybackSpeed ​​(tốc độ); Đặt tốc độ phát lại video và âm thanh Tham số: tốc độ, ví dụ: 0.8 hoặc 2.0, mặc định 1.0, phạm vi trong [0,5-2]

Vui lòng tham khảo link: http://www.vitamio.org/en/docs/news/2013/0529/19.html

+1

Bạn đã thử chưa? Nó có hoạt động giống như họ nói không? – safari

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