2016-03-23 82 views
2

我試圖使用AVPlayer從遠程URL播放視頻。這是一個非常簡單的設置:加載視圖控制器,並在viewDidLoad中,使用url設置AVPlayer並播放它。這是我的代碼,在viewDidLoad:使用AVPlayer從遠程URL播放視頻

NSString *urlString = @"http://download.wavetlan.com/SVV/Media/HTTP/MOV/ConvertedFiles/MediaConvert/MediaConvert_test4_1m10s_MPEG4SP_VBR_383kbps_320x240_30fps_AACLC_VBR_60kbps_Stereo_44100Hz.mov"; 
NSURL *url = [NSURL fileURLWithPath:urlString]; 
self.item = [AVPlayerItem playerItemWithURL:url]; 
self.player = [[AVPlayer alloc] initWithPlayerItem:self.item]; 
AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoFinished:) name:AVPlayerItemDidPlayToEndTimeNotification object:self.item]; 
playerLayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); 
playerLayer.backgroundColor = [UIColor greenColor].CGColor; 
[self.view.layer addSublayer:playerLayer]; 
playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; 
[self.player play]; 
self.player.actionAtItemEnd = AVPlayerActionAtItemEndNone; 

但是,當視圖加載,什麼也沒有發生。屏幕只是綠色的(因爲我把playerLayer設置爲綠色),所以我知道它在那裏。它只是不玩。你也可以測試那個urlString,它是一個有效的url。該文件的大小是3.8 MB。我在這裏得到了一些測試網址的網址:http://download.wavetlan.com/SVV/Media/HTTP/http-mov.htm

所以,我初始化了播放器,playerLayer,項目和URL是正確的。但屏幕上沒有任何內容。我在調試器中注意到的一件事是NSURL和url的實際字符串在最後是不同的。所以也許這可能有一些幫助,但我不知道如何改變這一點。這裏有一張照片:

enter image description here

另外,我在iOS 8.4設備上測試這一點,所以我知道這不是阻止HTTP地址的應用程序傳輸安全。

我在這裏做錯了什麼?任何幫助表示讚賞。謝謝。

回答

6

更改此:
NSURL *url = [NSURL fileURLWithPath:urlString];
這樣:
NSURL *url = [NSURL URLWithString:urlString];

fileURLWithPath是genrally使用,而你正在使用的URL從Web從本地文件系統中加載的網址,你應該使用URLWithString