SGPlayer 是一款基于 AVPlayer、FFmpeg 的媒体资源播放器框架。支持360°全景视频,VR视频,RTMP、RTSP 等直播流;同时支持 iOS、macOS、tvOS 三个平台。
支持播放360°全景视频。
支持手势、传感器操控360°全景视频。
支持双眼模式,具有畸变校正、色散校正。
支持 iOS、macOS、tvOS。
支持 H.264 硬件解码(VideoToolBox)。
支持 RTMP、RTSP 等直播流。
支持后台播放。
支持选择音频轨道。
支持控制音频输出音量。
支持无损视频截图。
支持近所有常用媒体格式。
支持 Bitcode。
极简的事件通知机制。
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
SGPlayer.framework
SGPlatform.framework Optional
CoreMedia.framework
AudioToolBox.framework
VideoToolBox.framework
libiconv.tbd
libbz2.tbd
libz.tbd
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; // 继续播放
Plane video
360° panorama video
我正在开发一个包含一些音频播放器的RecyclerView的应用程序。应用程序将下载。3gp文件(如果尚未下载)。 当我单击playAudio按钮时,音频未被播放。 这是我的适配器代码: 我怎样才能解决这个问题?
1.1.1. 多媒体播放 1.1.1. 多媒体播放 我们事实上对上游芯片厂商自带的播放器方式做了调整。 Amlogic 芯片 BaseCode 我们禁用了芯片厂商的原生代码的 libplayer 包,原因是芯片厂商的播放器是直接使用 ALSA 框架来调用音频播放功能的。 这对我们 RokidOS 平台让多个进程使用音频设备造成阻碍。基于这个因素,我们使用了 RokidOS 开发的媒体播放库 lib
这可能不是一个可以接受的问题,但我现在非常绝望。 我需要一个同步java媒体播放器与快速寻找和平衡修改。 脚本: 我有一个javaFX项目,我必须在循环中播放一个非常短(50-100毫秒)的媒体文件。问题是,在重新启动之前,我需要等待一些要求。 简而言之:播放声音- javafx提供了一个我修改过的媒体播放器。 如果有人能为我指出正确的方向(图书馆/我错过的东西),我将不胜感激 ps允许的java
当我使用MediaPlayer播放mp3文件时,系统会报告错误日志:。但是RealPlayer是正常的。 我发现它的错误只发生在更高的ROM版本。像4.0版本一样,它有错误。在2.3版中,它没有这个错误。 代码: 日志猫错误:
我已经成功地能够从我的服务器流MP3,现在我想显示一个媒体播放器通知与控制时,歌曲开始播放。我已经遵循了一些教程如何做到这一点,但我仍然得到错误时,试图在我的应用程序中做同样的事情。 这是我尝试在音乐开始播放时显示通知的方式 这是完整的 但是,当我运行代码并单击播放按钮时,应用程序崩溃,logcat返回此错误,但没有指向特定的代码行。
我的问题是关于媒体播放器直播流从我的应用程序的url? 我正在尝试通过媒体播放器播放实时流mp3音频。
我正在开发我的第一个Android应用程序。这是一个录音应用程序。我正在用MediaRecord录制语音,如下所示: 我有另一个活动回放这些录制的声音(文件)。在这个活动中,有一个包含我录制的声音的ListView。我想用手机上安装的任何音乐播放器播放声音。这里我的代码:(此代码的来源:https://stackoverflow.com/a/3367231/556169) 但我得到了“音乐播放器不