SGPlayer跨平台媒体播放器框架
SGPlayer
SGPlayer 是一款基于 AVPlayer、FFmpeg 的媒体资源播放器框架。支持360°全景视频,VR视频,RTMP、RTSP 等直播流;同时支持 iOS、macOS、tvOS 三个平台。
功能特点
支持播放360°全景视频。
支持手势、传感器操控360°全景视频。
支持双眼模式,具有畸变校正、色散校正。
支持 iOS、macOS、tvOS。
支持 H.264 硬件解码(VideoToolBox)。
支持 RTMP、RTSP 等直播流。
支持后台播放。
支持选择音频轨道。
支持控制音频输出音量。
支持无损视频截图。
支持近所有常用媒体格式。
支持 Bitcode。
极简的事件通知机制。
编译方式(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 - 克隆项目并安装子模块
git clone git@github.com:libobjc/SGPlayer.git cd SGPlayer git submodule update --init --recursive
步骤2 - 手动编译 FFmpeg 并放在指定目录下
// 将FFmpeg编译出的.a静态库分别放在对应目录 /SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-iOS // iOS /SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-macOS // macOS /SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-tvOS // tvOS
使用示例
详细使用示例参见 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
基础视屏播放
self.player = [SGPlayer player]; // 注册事件通知 [self.player registerPlayerNotificationTarget:self stateAction:@selector(stateAction:) progressAction:@selector(progressAction:) playableAction:@selector(playableAction:) errorAction:@selector(errorAction:)]; // 视频画面点击事件 [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];
高级设置
// 三种预设播放内核选择策略 self.player.decoder = [SGPlayerDecoder defaultDecoder]; // 默认配置,混合使用 AVPlayer和FFmpeg,根据容器格式动态选择播放内核 self.player.decoder = [SGPlayerDecoder AVPlayerDecoder]; // 仅使用 AVPlayer self.player.decoder = [SGPlayerDecoder FFmpegDecoder]; // 仅使用 FFmpeg // 单个容器格式单独配置示例 self.player.decoder.decodeTypeForMPEG4 = SGDecoderTypeFFmpeg; // 使用 FFmpeg 播放 mp4 文件 // 开启 FFmpeg 硬解 self.player.decoder.hardwareAccelerateEnableForFFmpeg = YES; // 进入 VR眼镜 模式 self.player.displayMode = SGDisplayModeBox; // 设置后台播放模式 // 如果需要后台播放,需将项目的 Background Modes 打开并勾选 Audio 选项, 并将 AVAudioSession 的 Category 设为AVAudioSessionCategoryPlayback self.player.backgroundMode = SGPlayerBackgroundModeAutoPlayAndPause; // 自动暂停及恢复 self.player.backgroundMode = SGPlayerBackgroundModeContinue; // 继续播放
演示
iOS
Plane video
360° panorama video
评论
PHPSciter跨平台 GUI 框架
关于SciterSciter 是一个非常优秀的的跨平台GUI框架,它使用HTML5+CSS来绘制界面,使用TIScritpt来做交互。Sciter由Andrew发起。这是一位非常资深的UI专家,以邀请
PHPSciter跨平台 GUI 框架
0
grocket跨平台服务器框架
1、跨平台Windows32/64、Linux32/64、MacOSX2、支持多种进程与线程模型支持多线程模型和多进程模型的同时,对于我们使用最多的以fork模型实现资源共享的方式也提供支持。3、高性
grocket跨平台服务器框架
0
OSMFFlash媒体播放器框架
OSMF 是Adobe公司发布的开源项目,目的是为客户端基于Flash的媒体播放器建立标准。它包括API插件,允许第三方广告、报告、报表等利用视频播放器的特征,比如缓冲、动态流、影像浏览。
OSMFFlash媒体播放器框架
0
wxWidgets跨平台 GUI 框架
wxWidgets是一个开源的跨平台的C++构架库(framework),它可以提供GUI(图形用户界面)和其它工具。支持所有版本的Windows、带GTK+或Motif的Unix和MacOS。wxW
wxWidgets跨平台 GUI 框架
0