美文网首页DevSupportiOS-音视频ios-视频
IJKPlayer打包framework(包含https支持)

IJKPlayer打包framework(包含https支持)

作者: 天蚕 | 来源:发表于2017-06-01 18:24 被阅读1476次

IJKPlayer只能支持http或者https其中之一,默认支持http,如果使用https那么需要做额外的配置

获取源码

//获取ijkplayer源码
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
//进入源码目录
cd ijkplayer-ios
//切换分支
git checkout -B latest k0.8.0

配置多种格式支持(如果不需要多种格式可以跳过这一步)

cd config
rm module.sh
ln -s module-lite-hevc.sh module.sh
cd ..
cd ios
sh compile-ffmpeg.sh clean

获取ffmpeg

cd ..
 ./init-ios.sh

https支持(https支持的静态文件libcrypto.a 和 libssl.a,如果不需要可以跳过这一步)

./init-ios-openssl.sh
cd ios
vim ../config/module.sh
//在打开的文件中添加一行下面一行
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"
./compile-ffmpeg.sh clean

编译

./compile-openssl.sh all(如果不需要可以跳过这一步)
./compile-ffmpeg.sh all

配置framework(如果不使用https跳过这一步)

用xcode打开ios目录下的IJKMediaPlayer工程
如果不使用https,那么直接做常规framework打包即可
如果使用https,那么需要手动添加libcrypto.a 和 libssl.a文件,默认不会添加
然后再做framework打包即可

注意:这两个依赖库的路径:ijkplayer-ios/ios/build/universal/lib,只有做了上面openssl相关的操作,才可以在这个目录下找到libcrypto.a 和 libssl.a

打包framwork

1、配置Release模式如果下图

Snip20170601_1.png Snip20170601_3.png

2、打包真机framework

Snip20170601_5.png

如图操作,然后编译即可

3、打包模拟器framework

Snip20170601_6.png

如图操作,然后编译即可

4、合并framework

//lipo -create 真机framework路径 模拟器framework路径 -output 合并路径(这里的路径都需要包含文件名称)
lipo -create Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework

集成framework到项目中

1、导入framework

直接将framework拖入到工程中即可

2、添加下列依赖到工程

//1、libstdc++.tbd
//2、libz.tbd
//3、libbz2.tbd
//4、AudioToolbox
//5、UIKit
//6、CoreGraphics
//7、AVFoundation
//8、CoreMedia
//9、CoreVideo
//10、MediaPlayer
//11、MobileCoreServices
//12、OpenGLES
//13、QuartzCore
//14、VideoToolbox

按github中的demo使用即可

https://github.com/Bilibili/ijkplayer

问题

遗留问题,有高手可以帮忙解决下

1、明明在播放isPlaying()返回false

https://github.com/Bilibili/ijkplayer/issues/1411
可以尝试在播放器准备播放的回调中先暂停再播放

@objc private func mediaIsPreparedToPlayDidChange(notification:Notification)
 {
    JLBLog("准备播放:\(notification)")
    player?.pause()
    player?.play()
}

2、内存泄漏,至今无解

每次重新播放都会增加1~2M内存
https://github.com/Bilibili/ijkplayer/issues/2144

懒人脚本

https://github.com/tiancanfei/IJKPlayer-framework-script

相关文章

网友评论

  • 6088245f8494:IOS SSL亲测可用,感谢博主!
  • 十二栗子:so 集成失败
  • 十二栗子:报了一个错,缺少libavfomat
  • smalldu:两个问题
    1、如果视频比较短 缓冲进度会有问题,比如10秒以内的短视频
    2、iOS 竖屏拍摄的视频 播放出来的是横着的。怎么解决。
    视频地址 https://videos.zuber.im/e82d18b4e74b53b14a741400/2018/03/12/5aa68c0180f03.mp4
    http或者https都可以
  • Mr_Me:我的手机 6P 系统10.1.1运行没有问题,我同事的一个5S 系统9.3运行崩溃,这种问题你遇到过吗
  • overla5:熊猫里面随便找个直播支持吗?
  • Leesim:不能同时支持https和http么? 那么如何版本过度?
  • 311d71c6828b:你好,请问https支持的话,是要打包IJKMediaFramework 还是 IJKMediaFrameworkWithSSL?
  • SkimTblog:使用模拟器编译IJKMediaFrameworkWithSSL.framework的时候报错,错误是mach-o,请问您知道为什么吗?
    SkimTblog:网上搜的说是libcrypto不支持32位
  • kuazi:你好,https支持 ,我这边编译IJKMediaFrameworkWithSSL.framework 一直报错ld: library not found for -lcrypto
    天蚕:@kuazi 我又做了一遍,编译没有问题啊
    kuazi:@天蚕 加了的。
    天蚕:制作framework的时候有木有添加libcrypto.a 和 libssl.a,看这提示是没有找到对应的库,这两个库是需要手动添加的

本文标题:IJKPlayer打包framework(包含https支持)

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