如果不想去配置,想提前看效果,节省时间的话,可以直接去下载我放在Github的framework —— ijkplayer-framework
以下内容是对我遇到的问题的总结,从零开始的话,建议去看上面的文章或者网上的其他教程。有很多,我就不再总结了
执行这一步时报错,如下。
./compile-ffmpeg.sh all
AS libavcodec/arm/aacpsdsp_neon.o ./libavutil/arm/asm.S:50:9: error: unknown directive .arch armv7-a ^ make: *** [libavcodec/arm/aacpsdsp_neon.o] Error 1 make: *** Waiting for unfinished jobs....
需要在 compile-ffmpeg.sh
删除 armv7 , 修改方法如下:
删除前
删除后
也就是将
FF_ALL_ARCHS_IOS8_SDK="armv7 arm64 i386 x86_64"
改为
FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"
我这里有测试过是否需要删除所有的armv7,我只删除了上图那一行的armv7,编译通过。所以应该是不需要的。
接着重新执行编译ffmpeg的命令:
./compile-ffmpeg.sh all
编译报错问题
需要注释两个文件的引用代码。两个文件分别是avconfig.h
和config.h
如果点击报错的地方没反应,全局搜索也找不到,那么你就需要直接到文件目录去找了
avconfig.h Not Found
反键选择Reveal in Log
,根据路径找到avconfig.h
avconfig.h
直接打开,然后注释掉# include "armv7/avconfig.h"
注释掉
config.h
也是同理
config.h Not Found
config.h
也是打开,然后注释掉# include "armv7/config.h"
注释掉
打包完Framework并添加到工程后,需要测试框架是否正常
环境:
Xcode 10.1
swift 4.2
示例代码
视频源直接上网搜索就好,这是个我搜索出来的网址
//// PlayerViewController.swift// ProjectFramework//// Created by Bart Simpson on 2018/11/16.// Copyright © 2018年 simpsons. All rights reserved.//import UIKitimport IJKMediaFrameworkclass PlayerViewController: UIViewController { var player:IJKFFMoviePlayerController! override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.white showVideo() // Do any additional setup after loading the view. } func showVideo(){ let options = IJKFFOptions.byDefault() //视频源地址 let url = URL.init(string: "http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8") //初始化播放器,播放在线视频或直播(RTMP) player = IJKFFMoviePlayerController.init(contentURL: url, with: options) //播放页面视图宽高自适应 let autoresize = UIView.AutoresizingMask.flexibleWidth.rawValue | UIView.AutoresizingMask.flexibleHeight.rawValue player.view.autoresizingMask = UIView.AutoresizingMask(rawValue: autoresize) player.view.frame = self.view.bounds player.scalingMode = .aspectFit //缩放模式 player.shouldAutoplay = true //开启自动播放 self.view.autoresizesSubviews = true self.view.addSubview(player.view) } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) //开始播放 self.player.prepareToPlay() } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) //关闭播放器 self.player.shutdown() } }
作者:Bart_Simpson
链接:https://www.jianshu.com/p/2669370bee23