直播云

  • 开发准备

    最近更新时间:2018-01-16 16:49:25

    1 设备以及系统

    • 设备要求:搭载 Android 系统的设备
    • 系统要求:Android 4.0.3(API 15) 及其以上

    2 前置条件

    • 已注册七牛账号
    • 通过官网申请并已开通直播权限

    3 混淆

    为了保证正常使用 SDK ,请在 proguard-rules.pro 文件中添加以下代码:

    -keep class com.qiniu.pili.droid.streaming.** { *; }
    

    4 版本升级须知

    v2.3.0

    • 从 v2.3.0 版本开始,增加 libpldroid_streaming_puic.so 库
    • libpldroid_streaming_core.so 依赖于 libpldroid_streaming_puic.so,无论是否启用 QUIC 推流,都需要包含 libpldroid_streaming_puic.so 库

    v2.2.0

    • 从 v2.2.0 版本开始,须要在 build.gradle 中删除 QoS 依赖
    dependencies {
        ...
        compile 'com.qiniu.pili:pili-android-qos:0.8.+'
        ...
    }
    

    v2.1.0

    • 使用录屏功能前,须要在 AndroidManifest.xml 中注册 SDK 内置的 Activity:
    <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

    StreamingPreviewCallback#onPreviewFrame(byte[] data, int width, int height)
    
    调整为
    
    /**
    * Called if the {@link StreamingPreviewCallback} registered.
    *
    * @param data the contents of the preview frame in fmt format
    * @param width the width of the frame
    * @param height the height of the frame
    * @param rotation set the clockwise rotation of frame in degrees to achieve the same effect of preview display.
    * @param fmt the format of the frame. See also {@link com.qiniu.pili.droid.streaming.av.common.PLFourCC}
    * @param tsInNanoTime the timestamp of the frame
    *
    * */
    boolean StreamingPreviewCallback#onPreviewFrame(byte[] data, int width, int height, int rotation, int fmt, long tsInNanoTime);
    

    v2.0.1

    从 v2.0.1 开始:

    • 删掉废弃的 CameraStreamingManager,可使用 MediaStreamingManager
    • 须在宿主项目中的 build.gradle 中加入如下语句:
    dependencies {
        ...
        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

    v2.0.0 Beta 开始,SDK 由 PLDroidCameraStreaming 更名为 PLDroidMediaStreaming,将会提供更丰富的功能接口。有如下重大更新:

    • 新增 MediaStreamingManager,废弃 CameraStreamingManager 且不再被维护
    • 新增一些辅助类并废弃相关的类
      • 新增 StreamingStateChangedListener,并废弃 CameraStreamingManager#StreamingStateListener
      • 新增 StreamingState,并废弃 CameraStreamingManager#STATE
      • 新增 StreamingSessionListener,并废弃 CameraStreamingManager#StreamingSessionListener
      • 新增 AVCodecType,并废弃 CameraStreamingManager#EncodingType
    • 包名更新为 com.qiniu.pili.droid.streaming.*;,因此需要更新混淆相关代码

    v1.6.1

    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

    v1.6.0 开始,在使用 SDK 之前,需要保证 StreamingEnv 被正确初始化 ,否则在构造核心类 CameraStreamingManager 的阶段会抛出异常。具体可参看 Demo

    StreamingEnv.init(getApplicationContext());
    

    v1.4.6

    从 v1.4.6 版本开始,需要在宿主项目中的 build.gradle 中加入如下语句:

    dependencies {
        ...
        compile 'com.qiniu:happy-dns:0.2.7'
        ...
    }
    

    否则,在运行时会发生找不到 happydns 相关类的错误。

    以上内容是否对您有帮助?
  • Close