2015-02-28 19 views
5

Sto utilizzando AVPlayer in AVFoundation per riprodurre video mp4 nella mia app. Principalmente il giocatore è ok. Ma in questi due giorni ho incontrato un file .mp4 che il giocatore non è riuscito a riprodurre. Mostra uno schermo nero ma nessuna immagine. Sono molto confuso. Ecco i metadati del file .mp4.iOS: AVPlayer mostra una schermata nera e non può riprodurre alcuni video mp4

General 
Complete name     : E:\test.mp4 
Format       : MPEG-4 
Format profile     : Base Media 
Codec ID       : isom 
File size      : 28.2 MiB 
Duration       : 1mn 30s 
Overall bit rate     : 2 613 Kbps 
Encoded date      : UTC 2015-01-09 13:55:04 
Tagged date      : UTC 2015-01-09 13:55:04 

Video 
ID        : 1 
Format       : AVC 
Format/Info      : Advanced Video Codec 
Format profile     : [email protected] 
Format settings, CABAC   : Yes 
Format settings, ReFrames  : 1 frame 
Muxing mode      : Container [email protected] 
Codec ID       : avc1 
Codec ID/Info     : Advanced Video Coding 
Duration       : 1mn 27s 
Bit rate mode     : Variable 
Bit rate       : 2 675 Kbps 
Width       : 756 pixels 
Height       : 1 260 pixels 
Display aspect ratio    : 0.600 
Frame rate mode     : Variable 
Frame rate      : 54.536 fps 
Minimum frame rate    : 4.646 fps 
Maximum frame rate    : 148.515 fps 
Color space      : YUV 
Chroma subsampling    : 4:2:0 
Bit depth      : 8 bits 
Scan type      : Progressive 
Bits/(Pixel*Frame)    : 0.051 
Stream size      : 27.9 MiB (99%) 
Title       : VideoHandle 
Language       : English 
Encoded date      : UTC 2015-01-09 13:55:04 
Tagged date      : UTC 2015-01-09 13:55:04 

Audio 
ID        : 2 
Format       : AMR 
Format/Info      : Adaptive Multi-Rate 
Format profile     : Narrow band 
Codec ID       : samr 
Duration       : 1mn 30s 
Bit rate mode     : Constant 
Bit rate       : 12.8 Kbps 
Channel(s)      : 1 channel 
Sampling rate     : 8 000 Hz 
Bit depth      : 13 bits 
Stream size      : 141 KiB (0%) 
Title       : SoundHandle 
Writing library     :  
Language       : English 
Encoded date      : UTC 2015-01-09 13:55:04 
Tagged date      : UTC 2015-01-09 13:55:04 

risposta

1

Ho trovato finalmente una soluzione. Dopo aver impostato il videoCompostion di avplayerItem, funziona. Il contenuto del videoComposition è in realtà lo stesso del video. Quindi sta riproducendo la composizione dell'anteprima nella memoria ma non il file video. È un trucco Tuttavia, non so ancora perché l'avplayer mostri lo schermo nero.

-1

Proprio come un addendum a questo, uno dei motivi per cui i file mp4 a volte non vengono riprodotti in AVPlayer si riduce a una casella di controllo.

Quando si trascina/rilascia per aggiungere il file video al progetto XCode, un pannello scende con alcune opzioni. Una di queste opzioni è "Aggiungi agli obiettivi:".

from XCode: dragging and dropping a video file

Con i file .MOV non è necessario controllare la casella di controllo. Con tutti gli altri formati di file è necessario selezionare questa casella di controllo.

Quindi, forse se sei come me, trascorri, oh, un giorno o giù di lì, a cercare in AVAsset e così via cercando di capire perché il file non sembra essere in fase di caricamento.

Questa è la risposta. La casella di controllo Solo mp4, non MOV.

Perché, Apple.