IJKPlayer使用

作者: 胜哥的二哥 | 来源:发表于2017-02-24 11:55 被阅读252次

    直播拉流:
    按照https://github.com/Bilibili/ijkplayer上的readme将IJKPlayer打包好,(已打包好的https://pan.baidu.com/s/1c1kB3S 提取码: 32hn)
    将打包好的IJKPlayer包拖入工程(是oc的, 引入头文件; 是swift的, 建立桥文件), 导入相应的库:

    屏幕快照 2017-01-06 下午3.34.09.png

    在控制器中写入如下代码(基本设置代码, 如需扩展请自己添加)

    import UIKit  
    class ViewController: UIViewController {  
        // 在模拟器上声音和画面不同步或者比较卡顿的现象在真机没事的,不用太担心。  
        fileprivate var player: IJKFFMoviePlayerController?  
        override func viewDidLoad() {  
            super.viewDidLoad()  
            let options:IJKFFOptions = IJKFFOptions.byDefault();  
            // 帧速率(fps)(可以改,确认非标准桢率会导致音画不同步,所以只能设定为15或者29.97)  
            options.setOptionIntValue(15, forKey: "max-fps", of: kIJKFFOptionCategoryPlayer);  
            #if DEBUG  
               //  设置报告日志  
                IJKFFMoviePlayerController.setLogReport(true);  
                //  设置日志的级别为Debug  
                IJKFFMoviePlayerController.setLogLevel(k_IJK_LOG_DEBUG);  
            #else  
                //  设置不报告日志  
                IJKFFMoviePlayerController.setLogReport(false);  
                //  设置日志级别为信息  
                IJKFFMoviePlayerController.setLogLevel(k_IJK_LOG_INFO);  
            #endif  
            self.player = IJKFFMoviePlayerController(contentURL: URL(string: "视频拉流地址"), with: options);  
            // 设置适配横竖屏(设置四边固定,长宽灵活)  
            self.player?.view.autoresizingMask = [UIViewAutoresizing.flexibleWidth, UIViewAutoresizing.flexibleHeight];  
            self.player?.view.frame = self.view.bounds;  
            // 填充fill  
            self.player?.scalingMode = IJKMPMovieScalingMode.aspectFill;  
            // 设置自动播放(必须设置为NO,防止自动播放,才能更好的控制直播的状态)  
            self.player?.shouldAutoplay = true;  
            self.view.autoresizesSubviews = true;  
            self.view.addSubview(self.player!.view);  
            // 播放  
            self.player?.prepareToPlay();  
        }  
        override func didReceiveMemoryWarning() {  
            super.didReceiveMemoryWarning()  
        }  
    }  
    

    另附demo(为swift版本, 跟oc差不多): https://github.com/songhaisheng/SGLive
    参考的博客地址: http://www.jianshu.com/p/a7d9ed02cf40
    http://www.jianshu.com/p/4f21af680c19
    http://www.jianshu.com/p/b8db6c142aad

    相关文章

      网友评论

        本文标题:IJKPlayer使用

        本文链接:https://www.haomeiwen.com/subject/rnfwwttx.html