说明
记录一下使用过程,在Github上看到的项目29.3k,感觉不错。点这里传送
拿来吧你 Build iOS
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.8.8
./init-ios.sh
cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
# Demo
# open ios/IJKMediaDemo/IJKMediaDemo.xcodeproj with Xcode
#
# Import into Your own Application
# Select your project in Xcode.
# File -> Add Files to ... -> Select ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj
# Select your Application's target.
# Build Phases -> Target Dependencies -> Select IJKMediaFramework
# Build Phases -> Link Binary with Libraries -> Add:
# IJKMediaFramework.framework
#
# AudioToolbox.framework
# AVFoundation.framework
# CoreGraphics.framework
# CoreMedia.framework
# CoreVideo.framework
# libbz2.tbd
# libz.tbd
# MediaPlayer.framework
# MobileCoreServices.framework
# OpenGLES.framework
# QuartzCore.framework
# UIKit.framework
# VideoToolbox.framework
#
# ... (Maybe something else, if you get any link error)
#
等待它构建完成,你打开IJKMediaDemo.xcodeproj肯定会报错,说是“libavformat/avformat.h” file not found
解决方法
1.进入ijkplayer-ios/ios/compile-ffmpeg.sh
2.找到这一行 FF_ALL_ARCHS_IOS8_SDK="armv7 arm64 i386 x86_64"
3.删除掉其中的 armv7
4.回到ijkplayer-ios/ios,并执行
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
image.png
添加IJKMediaDemo所需要的库
AudioToolbox.framework
AVFoundation.framework
CoreGraphics.framework
CoreMedia.framework
CoreVideo.framework
libbz2.tbd
libz.tbd
MediaPlayer.framework
MobileCoreServices.framework
OpenGLES.framework
QuartzCore.framework
UIKit.framework
VideoToolbox.framework
到这里官方的Demo就可以运行了,如果你想要自己的项目使用,直接编译IJKMediaFramework,然后把它拖拽进自己项目就可以了
image.png
还是一样,添加所需要的库
image.png
ViewController随便写点垃圾代码
import UIKit
import IJKMediaFramework
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
//http://shbu.live.bestvcdn.com.cn:8080/live/program/live/hnwshd/2300000/mnf.m3u8
//https://vd4.bdstatic.com/mda-mf2m4ykn1wze5j6k/sc/cae_h264_clips/1622735654925801759/mda-mf2m4ykn1wze5j6k.mp4?auth_key=1630149290-0-0-71aefa74cbc35ab3edaf04de1ac99e10&bcevod_channel=searchbox_feed&pd=1&pt=3&abtest=
//https://cctvtxyh5ca.liveplay.myqcloud.com/live/cctv1_2/index.m3u8?contentid=2820180516001
//http://112.132.209.46/liveplay-kk.rtxapp.com/live/program/live/bjwshd/4000000/mnf.m3u8
let url = URL(string: "http://112.132.209.46/liveplay-kk.rtxapp.com/live/program/live/bjwshd/4000000/mnf.m3u8")
let options = IJKFFOptions.byDefault() //使用默认配置
let player = IJKFFMoviePlayerController(contentURL: url, with: options) //初始化播放器,播放在线视频或直播(RTMP)
player?.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
player?.view.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 300)
//player.scalingMode = IJKMPMovieScalingModeAspectFit //缩放模式
player?.shouldAutoplay = true //开启自动播放
player?.prepareToPlay()
view.autoresizesSubviews = true
view.addSubview(player!.view)
}
}
网友评论