PLDroidMediaStreaming 是七牛推出的一款适用于 Android 平台的推流 SDK,支持 RTMP 推流,h.264 和 AAC 编码,硬编、软编支持。具有丰富的数据和状态回调,方便用户根据自己的业务定制化开发。具有直播场景下的重要功能,如:美颜、背景音乐、水印等功能。PLDroidMediaStr
PLDroidMediaStreaming 是七牛推出的一款适用于 Android 平台的推流 SDK,支持 RTMP 推流,h.264 和 AAC 编码,硬编、软编支持。具有丰富的数据和状态回调,方便用户根据自己的业务定制化开发。具有直播场景下的重要功能,如:美颜、背景音乐、水印等功能。PLDroidMediaStr
PLDroidCameraStreaming 是一个适用于 Android 的 RTMP 直播推流 SDK,可高度定制化和二次开发。特色是同时支持 H.264 软编/硬编和 AAC 软编/硬编。支持 Android Camera 画面捕获,并进行 H.264 编码,以及支持 Android 麦克风音频采样并进行 AAC 编码;还实现了一套可供开发者选择的编码参数集合,以便灵活调节相应的分辨率和码率;同时,SDK 提供数据源回调接口,用户可进行 Filter 处理。借助 PLDroidCameraStreaming ,开发者可以快速构建一款类似 Meerkat 或 Periscope 的 Android 直播应用。
详细的开发指南请参考官方文档
android.arch.lifecycle:extensions:x.y.z 的依赖StreamingEnv.init(Context context) 已被弃用,请更新到 StreamingEnv.init(Context contex, String userId) 进行环境的初始化,其中,userId 代表用户的唯一标识符,用于区分不同的用户例如目前设有如下配置的客户:
StreamingProfile.VideoProfile vProfile =
new StreamingProfile.VideoProfile(20, 1000 * 1024, 60, false);需将参数调整为:
StreamingProfile.VideoProfile vProfile =
new StreamingProfile.VideoProfile(20, 1000 * 1024, 60, true);dependencies {
...
compile 'com.qiniu.pili:pili-android-qos:0.8.+'
...
}<activity
android:name="com.qiniu.pili.droid.streaming.screen.ScreenCaptureRequestActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
</activity>pili-android-qos 最新版本为 0.8.13
更新 StreamingPreviewCallback#onPreviewFrame
…从 v2.0.1 开始:
CameraStreamingManager,可使用 MediaStreamingManagerdependencies {
...
compile 'com.qiniu:happy-dns:0.2.+'
compile 'com.qiniu.pili:pili-android-qos:0.8.+'
...
}废弃的 StreamingPreviewCallback#onPreviewFrame(byte[] bytes, Camera camera) 被删掉,可使用 StreamingPreviewCallback#onPreviewFrame(byte[] bytes, int width, int height)
AudioSourceCallback#onAudioSourceAvailable(ByteBuffer byteBuffer, int size, boolean eof) 接口回调中增加时间戳信息,更改为 AudioSourceCallback#onAudioSourceAvailable(ByteBuffer byteBuffer, int size, long tsInNanoTime, boolean eof)
从 v2.0.0 Beta 开始,SDK 由 PLDroidCameraStreaming 更名为 PLDroidMediaStreaming,将会提供更丰富的功能接口。有如下重大更新:
MediaStreamingManager,废弃 CameraStreamingManager 且不再被维护StreamingStateChangedListener,并废弃 CameraStreamingManager#StreamingStateListenerStreamingState,并废弃 CameraStreamingManager#STATEStreamingSessionListener,并废弃 CameraStreamingManager#StreamingSessionListenerAVCodecType,并废弃 CameraStreamingManager#EncodingTypecom.qiniu.pili.droid.streaming.*;,因此需要更新混淆相关代码从 v1.6.1 开始,为了便于用户更好地定制化,将 TransformMatrix 信息加入到 SurfaceTextureCallback#onDrawFrame。因此更新到 v1.6.1 版本之后,若实现了 SurfaceTextureCallback 接口,需要将
int onDrawFrame(int texId, int texWidth, int texHeight);更改为:
int onDrawFrame(int texId, int texWidth, int texHeight, float[] transformMatrix);从 v1.6.0 开始,在使用 SDK 之前,需要保证 StreamingEnv 被正确初始化 ,否则在构造核心类 CameraStreamingManager 的阶段会抛出异常。具体可参看 Demo。
StreamingEnv.init(getApplicationContext());从 v1.4.6 版本开始,需要在宿主项目中的 build.gradle 中加入如下语句:
dependencies {
...
compile 'com.qiniu:happy-dns:0.2.7'
...
}否则,在运行时会发生找不到 happydns 相关类的错误。
从 v1.6.0 开始,在使用 SDK 之前,需要保证 StreamingEnv 被正确初始化 ,否则在构造核心类 CameraStreamingManager 的阶段会抛出异常。具体可参看 Demo。
StreamingEnv.init(getApplicationContext());从 v1.6.1 开始,为了便于用户更好地定制化,将 TransformMatrix 信息加入到 SurfaceTextureCallback#onDrawFrame。因此更新到 v1.6.1 版本之后,若实现了 SurfaceTextureCallback 接口,需要将
int onDrawFrame(int texId, int texWidth, int texHeight);更改为:
int onDrawFrame(int texId, int texWidth, int texHeight, float[] transformMatrix);当你遇到任何问题时,可以通过在 GitHub 的 repo 提交 issues 来反馈问题,请尽可能的描述清楚遇到的问题,如果有错误信息也一同附带,并且在 Labels 中指明类型为 bug 或者其他。
暂无开放 Issues,或尚未同步最近议题。