iOS 本地视频和网络视频流播放实例代码

2020-01-20 23:29:18于海丽

需求:最近公司需要做一个楼宇对讲的功能:门口机(连接WIFI)拨号对室内机(对应的WIFI)的设备进行呼叫,室内机收到呼叫之后将对收到的数据进行UDP广播的转发,手机(连接对应的WIFI)收到视频流之后,实时的展示视频数据(手机可以接听,挂断,手机接听之后,室内机不展示视频,只是进行转发。)

简单点说就是手机客户端需要做一个类似于直播平台的软件,可以实时的展示视频,实时的播放接收到的声音数据,并且实时将手机麦克风收到的声音回传给室内机,室内机负责转发给门口机。

之前从来做过视频播放都是本地文件的直接播放,从来没有做过网络视频流的播放,百度了很多都是介绍框架怎么使用的,按着它的流程是行不通的,没有一个详细的使用流程!!!想哭呀!!!

这篇文章说一下本地视频文件播放和网络视频播放以及三方框架的使用,有不对的地方欢迎指正!!!

 #pragma mark -- 本地视频文件播放

使用AVFoundation.framework

 第一步:导入框架AVFoundation.framework

//经过测试:不导入这个框架也能播放,在第三步使用的时候导入就行了,为了不出现未知的BUG还是乖乖的导入吧!!!

iOS,本地视频播放,ios播放网络音频流

第二步: 拖入一个视频文件到你的项目中 

第三步: 代码实现


#import "ViewController.h"
#import <AVFoundation/AVFoundation.h> //需要导入框架

#define EYScreenWidth [[UIScreen mainScreen] bounds].size.width
#define EYScreenHeight [[UIScreen mainScreen] bounds].size.height

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
 [super viewDidLoad];
 
 //1.从mainBundle获取test.mp4的具体路径
 NSString * path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp4"];
 //2.文件的url
 NSURL * url = [NSURL fileURLWithPath:path];
 
 //3.根据url创建播放器(player本身不能显示视频)
 AVPlayer * player = [AVPlayer playerWithURL:url];
 
 //4.根据播放器创建一个视图播放的图层
 AVPlayerLayer * layer = [AVPlayerLayer playerLayerWithPlayer:player];
 
 //5.设置图层的大小
 layer.frame = CGRectMake(0, 0, EYScreenWidth, EYScreenHeight);
 
 //6.添加到控制器的view的图层上面
 [self.view.layer addSublayer:layer];
 
 //7.开始播放
 [player play];
}

@end

#pragma mark -- 网络视频流播放

方式一:MobileVLCKit.framework

第一步: 下载MobileVLCKit.framework

 1. 可以去百度官网地址,上面有详细的编译步骤,GitHub上面也有详细的教程!!!--->之后直接进行第六步!!!

 2. 我已经编译好了 真机和模拟器都可以使用的: MobileVLCKit.framework