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

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

如果出现下图错误,将对应文件的第38行代码注释掉就行了!

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

再次运行就是OK了!!!

如果不好使尝试将ViewController.m----->ViewController.mm

如果上面的路径是本地路径的话,是可以播放本地视频的!!!

方式二: IJKMediaFramework 

第一步: 下载IJKMediaFramework

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

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

链接: https://www.easck.com/s/1o8G4ETG密码: 3cbr   

 第二步: 将下载下来的IJK.zip解压,IJK文件夹中的

1、IJKMediaFramework.framework

2、libcrypto.a

3、librtmp.a

4、libssl.a

总共4个拖入到你的工程中

第三步: 编写代码 

ViewController.h


#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

//视频流的路径
@property (nonatomic, copy) NSString * rtspPath;

@end

ViewController.m


#import "ViewController.h"
#import <IJKMediaFramework/IJKMediaFramework.h>

// 宏定义
#define EYScreenBounds [UIScreen mainScreen].bounds

@interface ViewController ()

@property (nonatomic, strong) IJKFFMoviePlayerController * ijkPlayer;

@end

@implementation ViewController

- (void)viewDidLoad {
 [super viewDidLoad];

 //初始化播放控制器
 self.ijkPlayer = [[IJKFFMoviePlayerController alloc] initWithContentURLString:self.rtspPath withOptions:nil];

 //设置打印级别, 测试发现没有什么效果
 [IJKFFMoviePlayerController setLogLevel:k_IJK_LOG_DEBUG];

 //设置控制器的view大小
 self.ijkPlayer.view.frame = EYScreenBounds;

 //控制器的view添加到自身的view上面
 [self.view addSubview:self.ijkPlayer.view];
}

- (void)viewWillAppear:(BOOL)animated
{
 [super viewWillAppear:animated];

 if (!self.ijkPlayer.isPlaying) {
  //播放
  [self.ijkPlayer prepareToPlay];
 }
}

- (void)viewWillDisappear:(BOOL)animated
{
 [super viewWillDisappear:animated];

 if (self.ijkPlayer.isPlaying) {
  //关闭
  [self.ijkPlayer shutdown];
 }
}

@end

注意点:方式一和方式二只能使用一个,因为他们两个会有冲突,暂时没有找到解决方案!!!(个人感觉应该是方式二中的.a与系统的.tbd有冲突)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持ASPKU。


注:相关教程知识阅读请移步到IOS开发频道。