N
O
D
E
M
E
D
I
A
Thinking
首页
产品
文档
博客
订单
文档
使用Objective-C开发直播播放应用
2026年 5月 20日 下午3:43
## 创建项目 ### 1.打开xcode,点击 Create New Project...  ### 2.选择iOS项目App类型,点击Next  ### 3.为应用程序命名并选择Storyboard,Objective-C,点击Next  ### 4.在弹出的窗口中选择项目创建目录 ## 集成SDK 本demo采用本地SDK压缩包进行适配,点击下载最新版SDK: ### 1.解压sdk到项目根目录  ### 2.在xcode项目中,添加framework  ### 3.在弹出的框中选择解压后的sdk目录,并点击Add Other... 选择Add Files...  ### 4.选中解压后的SDK目录  ### 5.添加后的项目目录结构  ## 代码集成 ### 1.在Stroyboard中添加视频控件, URL Text Field控件,开始按钮,并设置约束  ### 2.将视频控件, URL Text Field控件绑定到ViewController   ### 3.为开始按钮绑定按键事件   ### 4.引入SDK头文件 ``` objc #import "NodeMediaClient/NodeMediaClient.h" ``` ### 5.定义播放器对象 ``` objc @interface ViewController () @property (strong, nonatomic) NodePlayer *np; ``` ### 6.初始化播放器对象 ``` objc @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _np = [[NodePlayer alloc] initWithLicense:@"your license string"]; ``` ### 7.绑定试图 ```objc [_np attachView:self.videoView]; ``` ### 8.在开始按钮的按下事件中开始播放 ``` objc - (IBAction)startAction:(id)sender { [_np start:self.urlField.text]; } ``` ### 9.完整代码如下  ## 准备就绪,运行到模拟器上进行测试  ## 运行效果  ## 高级设置 可以看到,调用SDK到代码最少只需5行即可完成一个基础的播放功能,它已经满足最基本的需要。如果需要更多的控制,则继续调用SDK的API进行高级设置,以下例子为常用参数。 ### 设置事件监听 播放器从开始播放到停止,中间会有诸如:开始连接,连接成功,连接失败,网络异常,网络超时,执行重连等一系列状态的改变。这些事件不会通过一个start或者stop方法来返回。那么就需要设置一个状态监听的回调函数,当这些事件发生时做相应的操作。 #### 1.使当前ViewController 继承NodePlayerDelegate ```objc @interface ViewController () <NodePlayerDelegate> ``` #### 2.设置回调 ```objc - (void)viewDidLoad { [super viewDidLoad]; _np = [[NodePlayer alloc] initWithLicense:@"your license string"]; [_np setNodePlayerDelegate:self]; ``` #### 3.重载回调函数 ```objc - (void)onEventCallback:(id)sender event:(int)event msg:(NSString *)msg { // 事件将在这里回调 switch (event) { case 1000: //开始连接 break; case 1001: //连接成功 break; case 1002: //连接失败 break; case 1003: //开始重连 break; case 1004: //连接结束 break; case 1005: //网络异常 break; case 1006: //网络超时 break; } } ``` ### 设置视频显示比例 我们看到,播放的视频完全填充了video视图区域,因为比例不同,造成画面拉扯。NodePlayer有3中缩放模式: 1. 拉伸填充模式,在这种模式下,视频完全填充试图区域,无黑边,视频分辨率于视图比例不同时画面拉扯。默认模式。 2. 等比拉伸模式,在这种模式下,视频等比例的缩放对其视图区域,当视频分辨率于视图比例不同时会有黑边。 3. 等比拉伸填充模式,在这种模式下,视频等比例的缩放完全填充视图区域,当视频分辨率于视图比例不同时没有黑边,但超出的部分会进行裁剪显示,画面显示不完全。 #### 1模式 ``` objc [_np setScaleMode:1]; ``` 在这种模式下的显示效果如下  #### 2模式 ``` objc [_np setScaleMode:2]; ``` 在这种模式下的显示效果如下  ### 开启硬件解码 SDK默认采用CPU软解码,如需硬件解码,调用 ```objc [_np setHWAccelEnable:YES]; ``` 测试视频:4k 24fps h.265 编码 #### 软件解码CPU占用  #### 硬件解码CPU占用  ### 设置视频缓冲时长 设置缓冲时长可有效控制直播延迟 ```objc [_np setBufferTime:100]; ``` 测试延迟低于400毫秒 
嘿,我是小R,需要帮助随时找我哦
QQ客服:281269007
邮件支持
扫码加微信
回到顶部