IJKPlayer简析
来源:互联网 发布:valk魔方淘宝官网 编辑:程序博客网 时间:2024/04/29 08:10
IJKPlayer通过IJKFFMoviePlayerController管理播放器。
IJKFFMoviePlayerController里的代码过多,无法梳理。通过删除代码,保留核心,可以了解其调用方式。
#import "IJKMediaPlayback.h"#import "IJKFFOptions.h"@interface LivePlayerController : NSObject <IJKMediaPlayback>- (id)initWithContentURL:(NSURL *)aUrl withOptions:(IJKFFOptions *)options;@end
#import "LivePlayerController.h"#import <UIKit/UIKit.h>#import "IJKFFMoviePlayerDef.h"#import "IJKAudioKit.h"@implementation LivePlayerController{ IjkMediaPlayer * _mediaPlayer; IJKSDLGLView * _glView; NSString * _urlString;}@synthesize view = _view;- (instancetype)initWithContentURL:(NSURL *)aUrl withOptions:(IJKFFOptions *)options { if (aUrl == nil) { return nil; } // Detect if URL is file path and return proper string for it NSString *aUrlString = [aUrl isFileURL] ? [aUrl path] : [aUrl absoluteString]; self = [super init]; if (self) { // 初始化 ijkmp_global_init(); _urlString = aUrlString; // 创建播放器(结构体类型的对象) _mediaPlayer = ijkmp_ios_create(copy_media_player_msg_loop); // 创建播放控件(画面将在这个控件中显示) _glView = [[IJKSDLGLView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // 播放控件右侧不显示调试信息 _glView.shouldShowHudView = NO; // 公开播放控件,使其可调用于其他页面 _view = _glView; // 关联播放器和播放控件(播放控件的画面将由播放器管理) ijkmp_ios_set_glview(_mediaPlayer, _glView); // 初始化音频 [[IJKAudioKit sharedInstance] setupAudioSession]; } return self;}- (void)prepareToPlay { if (!_mediaPlayer) { return; } // 设置播放器的数据来源(直播地址) ijkmp_set_data_source(_mediaPlayer, [_urlString UTF8String]); // 开始播放 ijkmp_prepare_async(_mediaPlayer);}- (void)shutdown { if (!_mediaPlayer) { return; } // 停止播放 ijkmp_stop(_mediaPlayer); // 关闭播放器 ijkmp_shutdown(_mediaPlayer); // 销毁播放器 ijkmp_dec_ref_p(&_mediaPlayer);}int copy_media_player_msg_loop(void * arg) { return 0;}@end
阅读全文
0 0
- IJKPlayer简析
- ijkplayer
- ijkplayer
- ijkplayer
- ijkplayer
- ijkplayer 笔记
- ijkplayer安装
- 集成ijkplayer
- 编译ijkplayer
- IJKPlayer使用
- ijkplayer集成
- 编译ijkplayer
- IJKplayer播放
- 导入 IjkPlayer
- [IJKPLAYER]初识
- Ijkplayer使用
- ijkplayer编译
- ijkplayer编译
- 技术文章 | 大数据时代_如何利用数据来提升设计?
- iOS之《Effective Objective-C 2.0》读书笔记(7)
- 深入浅出理解JavaScript的闭包概念
- XMind Cloud相关问题解答
- easyUI 导航栏动态生成时绑定事件不相应
- IJKPlayer简析
- web前端面试题
- Python的zip函数妙用,旋转矩阵
- 料理机器人!有哪些黑科技改变了家庭生活?
- XAMPP使用细节 修改mysql密码
- linux下自创网络编程聊天室(2)
- (哈夫曼树)Entropy--HDOJ
- LoadRunner 函数之 web_add_cookie写法
- java后台获取xml文件数据()