<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    SGPlayer跨平臺(tái)媒體播放器框架

    聯(lián)合創(chuàng)作 · 2023-09-29 19:45

    SGPlayer

    • SGPlayer 是一款基于 AVPlayer、FFmpeg 的媒體資源播放器框架。支持360&deg;全景視頻,VR視頻,RTMP、RTSP 等直播流;同時(shí)支持 iOS、macOS、tvOS 三個(gè)平臺(tái)。

    功能特點(diǎn)

    • 支持播放360&deg;全景視頻。

    • 支持手勢(shì)、傳感器操控360&deg;全景視頻。

    • 支持雙眼模式,具有畸變校正、色散校正。

    • 支持 iOS、macOS、tvOS。

    • 支持 H.264 硬件解碼(VideoToolBox)。

    • 支持 RTMP、RTSP 等直播流。

    • 支持后臺(tái)播放。

    • 支持選擇音頻軌道。

    • 支持控制音頻輸出音量。

    • 支持無(wú)損視頻截圖。

    • 支持近所有常用媒體格式。

    • 支持 Bitcode。

    • 極簡(jiǎn)的事件通知機(jī)制。

    編譯方式(2選1即可)

    1.腳本編譯

    // iOS
    git clone https://github.com/libobjc/SGPlayer.git
    cd SGPlayer
    sh compile-build.sh iOS
    
    // macOS
    git clone https://github.com/libobjc/SGPlayer.git
    cd SGPlayer
    sh compile-build.sh macOS
    
    // tvOS
    git clone https://github.com/libobjc/SGPlayer.git
    cd SGPlayer
    sh compile-build.sh tvOS

    2.手動(dòng)編譯

    • 步驟1 - 克隆項(xiàng)目并安裝子模塊

    git clone [email protected]:libobjc/SGPlayer.git
    cd SGPlayer
    git submodule update --init --recursive
    • 步驟2 - 手動(dòng)編譯 FFmpeg 并放在指定目錄下

    // 將FFmpeg編譯出的.a靜態(tài)庫(kù)分別放在對(duì)應(yīng)目錄
    /SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-iOS        // iOS
    /SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-macOS      // macOS
    /SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-tvOS       // tvOS

    使用示例

    • 詳細(xì)使用示例參見(jiàn) demo

    iOS依賴(lài)

    • SGPlayer.framework

    • SGPlatform.framework Optional

    • CoreMedia.framework

    • AudioToolBox.framework

    • VideoToolBox.framework

    • libiconv.tbd

    • libbz2.tbd

    • libz.tbd

    macOS依賴(lài)

    • SGPlayer.framework

    • SGPlatform.framework Optional

    • CoreMedia.framework

    • AudioToolBox.framework

    • VideoToolBox.framework

    • VideoDecodeAcceleration.framework

    • libiconv.tbd

    • libbz2.tbd

    • libz.tbd

    • libizma.tbd

    基礎(chǔ)視屏播放

    self.player = [SGPlayer player];
    
    // 注冊(cè)事件通知
    [self.player registerPlayerNotificationTarget:self stateAction:@selector(stateAction:) progressAction:@selector(progressAction:) playableAction:@selector(playableAction:) errorAction:@selector(errorAction:)];
    
    // 視頻畫(huà)面點(diǎn)擊事件
    [self.player setViewTapAction:^(SGPlayer * _Nonnull player, SGPLFView * _Nonnull view) {
        NSLog(@"player display view did click!");
    }];
    
    // 播放普通視頻 (2種方式2選1即可)
    [self.player replaceVideoWithURL:contentURL]; // 方式1
    [self.player replaceVideoWithURL:contentURL videoType:SGVideoTypeNormal]; // 方式2
    
    // 播放360度全景視頻、VR視頻
    [self.player replaceVideoWithURL:contentURL videoType:SGVideoTypeVR];
    
    // 播放
    [self.player play];

    高級(jí)設(shè)置

    // 三種預(yù)設(shè)播放內(nèi)核選擇策略
    self.player.decoder = [SGPlayerDecoder defaultDecoder];     // 默認(rèn)配置,混合使用 AVPlayer和FFmpeg,根據(jù)容器格式動(dòng)態(tài)選擇播放內(nèi)核
    self.player.decoder = [SGPlayerDecoder AVPlayerDecoder];    // 僅使用 AVPlayer
    self.player.decoder = [SGPlayerDecoder FFmpegDecoder];      // 僅使用 FFmpeg
    
    // 單個(gè)容器格式單獨(dú)配置示例
    self.player.decoder.decodeTypeForMPEG4 = SGDecoderTypeFFmpeg;      // 使用 FFmpeg 播放 mp4 文件
    
    // 開(kāi)啟 FFmpeg 硬解
    self.player.decoder.hardwareAccelerateEnableForFFmpeg = YES;
    
    // 進(jìn)入 VR眼鏡 模式
    self.player.displayMode = SGDisplayModeBox;
    
    // 設(shè)置后臺(tái)播放模式
    // 如果需要后臺(tái)播放,需將項(xiàng)目的 Background Modes 打開(kāi)并勾選 Audio 選項(xiàng), 并將 AVAudioSession 的 Category 設(shè)為AVAudioSessionCategoryPlayback
    self.player.backgroundMode = SGPlayerBackgroundModeAutoPlayAndPause;  // 自動(dòng)暫停及恢復(fù)
    self.player.backgroundMode = SGPlayerBackgroundModeContinue;          // 繼續(xù)播放

    演示

    iOS

    • Plane video


    • 360° panorama video

    瀏覽 45
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    編輯 分享
    舉報(bào)
    評(píng)論
    圖片
    表情
    推薦
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    編輯 分享
    舉報(bào)

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    这里有精品 | 污污污污污www网站免费观看 | 俺去听听婷婷 | 国产精品福利导航 | 后入丰满少妇 |