<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SGPlayer跨平臺媒體播放器框架

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

          SGPlayer

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

          功能特點(diǎn)

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

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

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

          • 支持 iOS、macOS、tvOS。

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

          • 支持 RTMP、RTSP 等直播流。

          • 支持后臺播放。

          • 支持選擇音頻軌道。

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

          • 支持無損視頻截圖。

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

          • 支持 Bitcode。

          • 極簡的事件通知機(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.手動編譯

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

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

          // 將FFmpeg編譯出的.a靜態(tài)庫分別放在對應(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ì)使用示例參見 demo

          iOS依賴

          • SGPlayer.framework

          • SGPlatform.framework Optional

          • CoreMedia.framework

          • AudioToolBox.framework

          • VideoToolBox.framework

          • libiconv.tbd

          • libbz2.tbd

          • libz.tbd

          macOS依賴

          • 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];
          
          // 注冊事件通知
          [self.player registerPlayerNotificationTarget:self stateAction:@selector(stateAction:) progressAction:@selector(progressAction:) playableAction:@selector(playableAction:) errorAction:@selector(errorAction:)];
          
          // 視頻畫面點(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];

          高級設(shè)置

          // 三種預(yù)設(shè)播放內(nèi)核選擇策略
          self.player.decoder = [SGPlayerDecoder defaultDecoder];     // 默認(rèn)配置,混合使用 AVPlayer和FFmpeg,根據(jù)容器格式動態(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 文件
          
          // 開啟 FFmpeg 硬解
          self.player.decoder.hardwareAccelerateEnableForFFmpeg = YES;
          
          // 進(jìn)入 VR眼鏡 模式
          self.player.displayMode = SGDisplayModeBox;
          
          // 設(shè)置后臺播放模式
          // 如果需要后臺播放,需將項(xiàng)目的 Background Modes 打開并勾選 Audio 選項(xiàng), 并將 AVAudioSession 的 Category 設(shè)為AVAudioSessionCategoryPlayback
          self.player.backgroundMode = SGPlayerBackgroundModeAutoPlayAndPause;  // 自動暫停及恢復(fù)
          self.player.backgroundMode = SGPlayerBackgroundModeContinue;          // 繼續(xù)播放

          演示

          iOS

          • Plane video


          • 360° panorama video

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

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  A片网站在线观看 | 日本三级跳转视频 | 东京热AV中文字幕 | 久热99 | 在线免费黄色视频 |