SGPlayer跨平臺媒體播放器框架
SGPlayer
SGPlayer 是一款基于 AVPlayer、FFmpeg 的媒體資源播放器框架。支持360°全景視頻,VR視頻,RTMP、RTSP 等直播流;同時(shí)支持 iOS、macOS、tvOS 三個(gè)平臺。
功能特點(diǎn)
支持播放360°全景視頻。
支持手勢、傳感器操控360°全景視頻。
支持雙眼模式,具有畸變校正、色散校正。
支持 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

評論
圖片
表情
