美文网首页
Swift使用bilibili / ijkplayer

Swift使用bilibili / ijkplayer

作者: iOS丶Michelle | 来源:发表于2021-08-28 19:17 被阅读0次

    说明

    记录一下使用过程,在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)
        }
    
    
    }
    

    效果

    image.png

    相关文章

      网友评论

          本文标题:Swift使用bilibili / ijkplayer

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