如何从objective-c中的https url流式传输视频

问题描述

我正在尝试为 Mac 制作一个屏幕保护程序,从后端服务器流式传输简单的 mp4 视频。我不习惯为 Mac 或 Objective-c 编码,所以我很迷茫。到目前为止,我已经弄清楚如何在本地加载视频,但是当我尝试将文件 URL 切换为 HTTPS URL 时,它似乎不起作用。这就是我现在加载本地 mp4 文件的方式:

NSURL *url = [[NSBundle bundleForClass:MainScript.class] URLForResource: @"video" withExtension: @"mp4"];
AVAsset *asset = [AVAsset assetWithURL: url];
NSArray *assetKeys = @[@"playable",@"hasProtectedContent"];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset: asset automaticallyLoadedAssetKeys:assetKeys];
NSkeyvalueObservingOptions options = NSkeyvalueObservingOptionOld | NSkeyvalueObservingOptionNew;
VideoPlayer *player = [VideoPlayer playerWithPlayerItem: playerItem];
[playerItem addobserver: player forKeyPath: @"status" options: options context: PlayerItemContext];
player.volume = 0;

正如我之前所说,我不习惯在 Objective-c 中编码,所以我不能 100% 确定这是创建本地视频流的代码,但我很确定它是。

从这里开始,我想要做的是将文件 URL:@"video" 替换为这样的 HTTPS URL:@"https://example.com/video"。一切都在后端服务器上运行,所以我的问题只是如何在 Mac 屏幕保护程序上加载视频。

据我所知,我现在正在使用 AVPlayerItem 加载视频。我不知道是否有更好的方法,但如果有,请告诉我 :)

解决方法

尝试使用 VLCKit,我很确定它可以立即使用 HTTPS。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...