2009-04-23 13 views
7

Sto cercando alternative a MPMoviePlayerController su iPhone. Come lettore video, la sua funzionalità è molto limitata. Secondo lo class reference, non è possibile ottenere il tempo di riproduzione corrente o impostare una nuova ora, ad esempio. È solo giocare e fermarsi.MPMoviePlayerController alternative su iPhone?

Esistono soluzioni middleware per la riproduzione di video iPhone che offrono più funzionalità? CRI has something in development ma non è stato rilasciato. Non sono stato in grado di trovare altro.

Grazie.

+0

Non supporto in alcun modo MPMoviePlayerController, ma ha una proprietà per "initialPlaybackTime". A seconda delle esigenze, questo combinato con le notifiche Play/Finished e un timer/thread può fornire un certo livello di controllo aggiuntivo. Non è carino però! :) –

risposta

3

Ricorda che anche se un progetto è GPL, ciò non significa che non puoi contattare l'autore su un'opzione LGPL sul codice sottostante.

Una possibile rotolo la propria soluzione sarebbe quella di utilizzare OpenGL come superficie compositing per il video e ottenere un dietro la biblioteca quinte come ffmpeg, se è necessario elaborare tipi di video specifici.

NeHe ha un esempio di rendere AVI a OpenGL: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=35

FFMpeg è stato recentemente portato su iPhone ed è un prodotto a base di LGPL: http://geek.thinkunique.org/2008/03/05/ffmpeg-on-the-iphone/

(Nota: C'è un certo dibattito circa l'uso commerciale di LGPL su iPhone perché la licenza fa riferimento alla frase "dinamico" quando si fa riferimento al linkage della libreria, che iPhone non consente. Non ho visto alcun team di progetto bloccare il proprio codice utilizzato su iPhone in modo statico, ma è necessario contattare direttamente gli autori per chiarimenti.)

Un'altra versione (anche se GPL) di un riproduttore video OpenGL è: http://code.google.com/p/glover/

Cosa si ottiene attraverso una soluzione come questa è fondamentalmente un bypass sui dettagli tecnici specifici di iPhone/Mac/CALayer e sfruttando una base di conoscenza video esistente attraverso OpenGL che, sebbene non esteso, è ancora ampiamente supportato.

Se si ha a che fare con uno stile video specifico, è possibile vedere se una libreria è disponibile per il formato video specifico direttamente dal fornitore invece di utilizzare uno strumento multifunzione come FFMpeg. Una volta che il compositing funziona, il video può provenire dalla maggior parte delle librerie.

Barney

0

VLC è stato ported to iPhone ma non utilizza l'SDK ufficiale.

+0

Grazie per il testa a testa.Sto cercando qualcosa che posso usare come sviluppatore per la riproduzione di video in un'applicazione personalizzata e non è su una licenza GPL con più funzionalità rispetto a MPMoviePlayerController. Il middleware che costa soldi va bene - non sono stato in grado di trovarlo. –

+0

hey mark e ryan, sei riuscito a trovare un modo per decodificare il video? o essere in grado di utilizzare una convalida di tipo vlc? – keuminotti

+0

chi è Ryan? Non sto facendo nessuna decodifica, solo dando un consiglio :-) –

2

Si potrebbe utilizzare AVPlayer. Vedi the documentation

È quindi possibile ottenere il tempo di riproduzione corrente con currentTime e cercare a un tempo specificato con seekToTime:.

È necessario indirizzare l'output visivo di un'istanza AVPlayer a un oggetto AVPlayerLayer (sottoclasse di CALayer). Vedi lo first listing here.

Problemi correlati