2009-04-23 29 views
7

Tôi đang tìm các lựa chọn thay thế cho MPMoviePlayerController trên iPhone. Là một trình phát video, chức năng của nó rất hạn chế. Theo số class reference, không có cách nào để có thời gian phát lại hiện tại hoặc đặt thời gian mới. Nó chỉ chơi và dừng lại.Các lựa chọn thay thế MPMoviePlayerController trên iPhone?

Có giải pháp phần mềm trung gian nào để phát lại video trên iPhone cung cấp nhiều chức năng hơn không? CRI has something in development nhưng chưa được phát hành. Tôi đã không thể tìm thấy bất cứ điều gì khác.

Cảm ơn.

+0

Tôi không hỗ trợ MPMoviePlayerController, nhưng nó có thuộc tính cho "initialPlaybackTime". Tùy thuộc vào nhu cầu của bạn, điều này kết hợp với thông báo Play/Finished và bộ hẹn giờ/luồng có thể cung cấp một số mức độ kiểm soát bổ sung. Nó không phải là khá mặc dù! :) –

Trả lời

3

Hãy nhớ rằng mặc dù một dự án là GPL, điều đó không có nghĩa là bạn không thể liên hệ với tác giả về tùy chọn LGPL trên mã cơ bản.

Giải pháp của riêng bạn có thể là sử dụng openGL làm bề mặt tổng hợp cho video và nhận thư viện hậu trường như ffmpeg nếu bạn cần xử lý các loại video cụ thể.

NeHe có một ví dụ về render AVI để OpenGL: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=35

FFMpeg gần đây đã được chuyển sang iPhone và là một LGPL dựa sản phẩm: http://geek.thinkunique.org/2008/03/05/ffmpeg-on-the-iphone/

(Lưu ý: Có một số cuộc tranh luận về việc sử dụng thương mại của LGPL trên iPhone vì giấy phép tham chiếu đến cụm từ "động" khi đề cập đến liên kết thư viện mà iPhone không cho phép. Tôi chưa thấy bất kỳ nhóm dự án nào sử dụng mã của họ đang được sử dụng trên iPhone một cách tĩnh lặng, nhưng bạn nên liên hệ trực tiếp với tác giả để làm rõ.)

Phiên bản khác (mặc dù GPL) của trình phát video OpenGL là: http://code.google.com/p/glover/

Điều bạn nhận được thông qua giải pháp như thế này về cơ bản là bỏ qua chi tiết kỹ thuật cụ thể của iPhone/Mac/CALayer và tận dụng cơ sở kiến ​​thức hiện có của video OpenGL mặc dù không mở rộng, vẫn được hỗ trợ rộng rãi.

Nếu bạn đang xử lý một kiểu video cụ thể, bạn có thể muốn xem thư viện có sẵn cho định dạng video cụ thể trực tiếp từ nhà cung cấp thay vì sử dụng công cụ đa năng như FFMpeg hay không. Một khi bạn đã làm việc tổng hợp, video có thể đến từ hầu hết mọi thư viện.

Barney

0

VLC là ported to iPhone nhưng không sử dụng SDK chính thức.

+0

Cảm ơn những người đứng đầu.Tôi đang tìm thứ gì đó mà tôi có thể sử dụng làm nhà phát triển để phát lại video trong một ứng dụng tùy chỉnh và không có giấy phép GPL với nhiều tính năng hơn MPMoviePlayerController. Middleware mà chi phí tiền là tốt - Tôi chỉ không thể tìm thấy nó. –

+0

dấu ấn và ryan, bạn có thể tìm cách giải mã video không? hoặc có thể sử dụng một convet loại vlc? – keuminotti

+0

Ryan là ai? Tôi không làm bất kỳ giải mã, chỉ cần đưa ra lời khuyên :-) –

2

Bạn có thể sử dụng AVPlayer. Xem the documentation

Sau đó, bạn có thể nhận thời gian phát lại hiện tại với currentTime và tìm kiếm thời gian được chỉ định với seekToTime:.

Bạn phải hướng đầu ra hình ảnh của một đối tượng AVPlayer đến đối tượng AVPlayerLayer (phân lớp của CALayer). Xem first listing here.