2015-02-28 8 views
5

Ich benutze AVPlayer in AVFoundation, um mp4 Videos in meiner App zu spielen. Meistens ist der Spieler in Ordnung. Aber diese zwei Tage treffe ich eine .mp4-Datei, die der Spieler nicht spielen konnte. Es zeigt einen schwarzen Bildschirm, aber keine Bilder. Ich bin sehr verwirrt. Hier sind die Metadaten der MP4-Datei.iOS: AVPlayer zeigt schwarzen Bildschirm und kann einige mp4 Videos nicht wiedergeben

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 

Antwort

1

Ich fand schließlich eine Lösung. Nach dem Einstellen der videoComposition des avplayerItem funktioniert es. Der Inhalt der videoComposition ist eigentlich der gleiche wie der des Videos. Es spielt also die Vorschaukomposition im Speicher, aber nicht die Videodatei. Es ist ein Trick. Ich weiß aber immer noch nicht, warum der Avplayer den schwarzen Bildschirm zeigt.

-1

Genau wie ein Addendum, ein Grund, warum MP4-Dateien manchmal nicht in AVPlayer spielen, kommt auf ein Kontrollkästchen.

Wenn Sie die Videodatei per Drag & Drop zu Ihrem XCode-Projekt hinzufügen, wird ein Fenster mit einigen Optionen angezeigt. Eine dieser Optionen ist "Zu Zielen hinzufügen:".

from XCode: dragging and dropping a video file

Mit MOV-Dateien brauchen Sie nicht diese Checkbox zu überprüfen. Bei allen anderen Dateiformaten müssen Sie dieses Kontrollkästchen aktivieren.

Also, vielleicht, wenn Sie wie ich sind, verbringen Sie, oh, einen Tag oder so, in AVAsset und so weiter probend versuchen, herauszufinden, warum die Datei scheint nicht geladen werden.

Das ist die Antwort. Das Kontrollkästchen Nur mp4, nicht MOV.

Weil, Apple.