2

我有一個從服務器到AVPlayer播放視頻文件,但我也有使用基本身份驗證玩這個file.here是我的代碼如何使用AVPlayer進行基本認證從服務器播放視頻文件?

NSMutableDictionary * headers = [NSMutableDictionary dictionary]; 
NSData *basicAuthCredentials = [[NSString stringWithFormat:@"username:password"] dataUsingEncoding:NSUTF8StringEncoding]; 
NSString *base64AuthCredentials = [basicAuthCredentials base64EncodedStringWithOptions:(NSDataBase64EncodingOptions)0]; 
[headers setValue:[NSString stringWithFormat:@"Basic %@", base64AuthCredentials] forKey:@"Authorization"]; 
NSURL *videoURL = [NSURL URLWithString:fileUrlString]; 
AVURLAsset * asset = [AVURLAsset URLAssetWithURL:videoURL options:headers]; 
AVPlayerItem * item = [AVPlayerItem playerItemWithAsset:asset]; 


AVPlayer *player = [AVPlayer playerWithPlayerItem:item]; 
AVPlayerViewController *playerViewController = [AVPlayerViewController new]; 
playerViewController.player = player; 
playerViewController.delegate = (id)self; 
[player play]; 
[self presentViewController:playerViewController animated:YES completion:nil]; 
+0

會發生什麼? – Droppy

+0

AVPlayerViewController成功提交,但文件未播放。 –

+0

服務器是否收到請求?你看過哪些錯誤報告可用嗎? – Droppy

回答

1

@ ANKIT,耆那教你幾乎沒有。到HTTP標頭添加到AVURLAsset正確的方法是這樣的:

AVURLAsset * asset = [AVURLAsset URLAssetWithURL:videoURL options:@{@"AVURLAssetHTTPHeaderFieldsKey" : headers}];

當你這樣做的,你的頭與請求一起使用。 看看這個答案瞭解更多詳情:https://stackoverflow.com/a/23713028/1306884

+0

爲什麼會有人在不留下評論的情況下低調回答這個問題,同時爲問題提供了正確的解決方案? – Michael