Interface ILivePusher

  • All Known Implementing Classes:
    AlivcLivePusher

    public interface ILivePusher
    推流接口
    • Method Detail

      • init

        void init​(android.content.Context context,
                  AlivcLivePushConfig config)
           throws java.lang.IllegalArgumentException,
                  java.lang.IllegalStateException
        初始化推流参数
        Parameters:
        context - 上下文
        config - 配置
        Throws:
        java.lang.IllegalArgumentException - 如果 config为空,或者config的值为无效(例如码率的值超过范围)
        java.lang.IllegalStateException - 如果状态不对,例如已经初始化,但是还没有销毁
      • destroy

        void destroy()
              throws java.lang.IllegalStateException
        释放推流
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化
      • startPreview

        void startPreview​(android.view.SurfaceView surfaceView)
                   throws java.lang.IllegalArgumentException,
                          java.lang.IllegalStateException
        开始预览
        Parameters:
        surfaceView - surfaceview
        Throws:
        java.lang.IllegalArgumentException - 如果surfaceView为空,或者surfaceView的surface未创建/已销毁
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化
      • startPreviewAysnc

        void startPreviewAysnc​(android.view.SurfaceView surfaceView)
                        throws java.lang.IllegalArgumentException,
                               java.lang.IllegalStateException
        异步开始预览
        Parameters:
        surfaceView - surfaceview
        Throws:
        java.lang.IllegalArgumentException - 如果surfaceView为空,或者surfaceView的surface未创建/已销毁
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化
      • stopPreview

        void stopPreview()
                  throws java.lang.IllegalStateException
        结束预览
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview
      • startPush

        void startPush​(java.lang.String url)
                throws java.lang.IllegalArgumentException,
                       java.lang.IllegalStateException
        开始推流
        Parameters:
        url - 推流Url
        Throws:
        java.lang.IllegalArgumentException - 如果url为空,或者不是有效的url格式
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview
      • startPushAysnc

        void startPushAysnc​(java.lang.String url)
                     throws java.lang.IllegalArgumentException,
                            java.lang.IllegalStateException
        开始推流
        Parameters:
        url - 推流Url
        Throws:
        java.lang.IllegalArgumentException - 如果url为空,或者不是有效的url格式
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview
      • restartPush

        void restartPush()
                  throws java.lang.IllegalStateException
        重新开始推流
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush/已经stopPush
      • restartPushAync

        void restartPushAync()
                      throws java.lang.IllegalStateException
        重新开始推流
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush/已经stopPush
      • reconnectPushAsync

        void reconnectPushAsync​(java.lang.String url)
                         throws java.lang.IllegalStateException
        重新连接进行推流
        Throws:
        java.lang.IllegalStateException
      • stopPush

        void stopPush()
               throws java.lang.IllegalStateException
        结束推流
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush/已经stopPush
      • pause

        void pause()
            throws java.lang.IllegalStateException
        暂停推流
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush/已经pause
      • resume

        void resume()
             throws java.lang.IllegalStateException
        恢复推流
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush/未pause/已resume
      • resumeAsync

        void resumeAsync()
                  throws java.lang.IllegalStateException
        异步恢复推流
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush/未pause/已resume
      • switchCamera

        void switchCamera()
                   throws java.lang.IllegalStateException
        切换摄像头
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview
      • setAutoFocus

        void setAutoFocus​(boolean autoFocus)
                   throws java.lang.IllegalStateException
        设置自动对焦
        Parameters:
        autoFocus - 自动聚焦
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview
      • focusCameraAtAdjustedPoint

        void focusCameraAtAdjustedPoint​(float x,
                                        float y,
                                        boolean autoFocus)
                                 throws java.lang.IllegalArgumentException,
                                        java.lang.IllegalStateException
        对焦,对焦点的坐标x[0,屏幕宽度],y[0,屏幕宽度]
        Parameters:
        x - 对焦的点x坐标
        y - 对焦的点y坐标y
        autoFocus - 是否自动聚焦
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview
        java.lang.IllegalArgumentException
      • setZoom

        void setZoom​(int zoom)
              throws java.lang.IllegalArgumentException,
                     java.lang.IllegalStateException
        设置缩放[0,getMaxZoom()]
        Parameters:
        zoom - 0~getMaxZoom()
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview
        java.lang.IllegalArgumentException
      • getMaxZoom

        int getMaxZoom()
                throws java.lang.IllegalStateException
        获取摄像头支持的最大缩放值, 0 : 不支持缩放 大于0 : 最大缩放值
        Returns:
        最大zoom值
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview
      • getCurrentZoom

        int getCurrentZoom()
                    throws java.lang.IllegalStateException
        获取当前缩放值
        Returns:
        当前缩放值
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview
      • setMute

        void setMute​(boolean mute)
              throws java.lang.IllegalStateException
        是否静音
        Parameters:
        mute - true:静音推流 false:正常推流
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush
      • setFlash

        void setFlash​(boolean flash)
               throws java.lang.IllegalStateException
        是否打开闪光灯
        Parameters:
        flash - true:打开闪光灯 false:关闭闪光灯
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview
      • setPushMirror

        void setPushMirror​(boolean mirror)
                    throws java.lang.IllegalStateException
        推流端是否水平镜像
        Parameters:
        mirror - true:打开推流镜像 false:关闭推流镜像
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush
      • setPreviewMirror

        void setPreviewMirror​(boolean mirror)
                       throws java.lang.IllegalStateException
        预览镜像开关
        Parameters:
        mirror - true:打开预览镜像 false:关闭预览镜像
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview
      • setTargetVideoBitrate

        void setTargetVideoBitrate​(int targetVideoBitrate)
                            throws java.lang.IllegalArgumentException,
                                   java.lang.IllegalStateException
        设置目标视频码率[100,5000](Kbps)
        Parameters:
        targetVideoBitrate - 目标视频编码码率
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush
        java.lang.IllegalArgumentException
      • setMinVideoBitrate

        void setMinVideoBitrate​(int minVideoBitrate)
                         throws java.lang.IllegalArgumentException,
                                java.lang.IllegalStateException
        设置最小视频码率[100,5000] (Kbps)
        Parameters:
        minVideoBitrate - 最小视频编码码率
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush
        java.lang.IllegalArgumentException
      • isCameraSupportAutoFocus

        boolean isCameraSupportAutoFocus()
        获取是否支持自动对焦
        Returns:
        是否支持自动对焦
      • isCameraSupportFlash

        boolean isCameraSupportFlash()
        获取是否支持闪光灯
        Returns:
        是否支持闪光灯
      • isPushing

        boolean isPushing()
                   throws java.lang.IllegalStateException
        是否正在推流
        Returns:
        true:正在推流 false:未推流
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush
      • isNetworkPushing

        boolean isNetworkPushing()
                          throws java.lang.IllegalStateException
        获取当前网络推流状态
        Returns:
        Throws:
        java.lang.IllegalStateException
      • setCustomDetect

        void setCustomDetect​(com.alivc.component.custom.AlivcLivePushCustomDetect customVideoDetect)
        设置用户自定义视频人脸识别回调
        Parameters:
        customVideoDetect - 回调接口
      • setCustomFilter

        void setCustomFilter​(com.alivc.component.custom.AlivcLivePushCustomFilter customVideoFilter)
        设置用户自定义视频美颜回调
        Parameters:
        customVideoFilter - 回调接口
      • setCustomAudioFilter

        void setCustomAudioFilter​(com.alivc.component.custom.AlivcLivePushCustomAudioFilter customAudioFilter)
        设置用户自定义音频处理回调
        Parameters:
        customAudioFilter - 回调接口
      • setLivePushErrorListener

        void setLivePushErrorListener​(AlivcLivePushErrorListener errorListener)
        设置推流错误事件
        Parameters:
        errorListener - 错误监听器
      • setLivePushInfoListener

        void setLivePushInfoListener​(AlivcLivePushInfoListener infoListener)
        设置推流通知事件
        Parameters:
        infoListener - 通知监听器
      • setLivePushNetworkListener

        void setLivePushNetworkListener​(AlivcLivePushNetworkListener networkListner)
        设置网络通知事件
        Parameters:
        networkListner - 通知监听器
      • setLivePushBGMListener

        void setLivePushBGMListener​(AlivcLivePushBGMListener pushBGMListener)
        设置背景播放通知事件
        Parameters:
        pushBGMListener - 通知监听器
      • setLivePushRenderContextListener

        void setLivePushRenderContextListener​(AlivcLivePusherRenderContextListener renderCtxListener)
        设置render的context监听
        Parameters:
        renderCtxListener - render的context监听
      • getLivePushStatsInfo

        AlivcLivePushStatsInfo getLivePushStatsInfo()
                                             throws java.lang.IllegalStateException
        获取推流统计数据
        Returns:
        推流统计数据
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化
      • getPushUrl

        java.lang.String getPushUrl()
                             throws java.lang.IllegalStateException
        获取推流URL
        Returns:
        推流URL
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush
      • setPreviewOrientation

        void setPreviewOrientation​(AlivcPreviewOrientationEnum orientation)
        设置推流方向,默认竖屏
        Parameters:
        orientation - 推流方向
      • startBGMAsync

        void startBGMAsync​(java.lang.String path)
                    throws java.lang.IllegalStateException
        播放背景音
        Parameters:
        path - 背景音乐路径
        Throws:
        java.lang.IllegalStateException
      • stopBGMAsync

        void stopBGMAsync()
                   throws java.lang.IllegalStateException
        停止播放背景音乐
        Throws:
        java.lang.IllegalStateException
      • pauseBGM

        void pauseBGM()
               throws java.lang.IllegalStateException
        暂停播放背景音乐
        Throws:
        java.lang.IllegalStateException
      • resumeBGM

        void resumeBGM()
                throws java.lang.IllegalStateException
        恢复播放背景音乐
        Throws:
        java.lang.IllegalStateException
      • setBGMLoop

        void setBGMLoop​(boolean isLoop)
                 throws java.lang.IllegalStateException
        设置背景音乐是否循环播放
        Parameters:
        isLoop - 是否循环 true:循环 false:不循环
        Throws:
        java.lang.IllegalStateException
      • setBGMEarsBack

        void setBGMEarsBack​(boolean isOpen)
                     throws java.lang.IllegalStateException
        设置耳返开关
        Parameters:
        isOpen - 是否循环 true:开启耳返 false:关闭耳返
        Throws:
        java.lang.IllegalStateException
      • setBGMVolume

        void setBGMVolume​(int volume)
                   throws java.lang.IllegalStateException,
                          java.lang.IllegalArgumentException
        设置背景音乐混音 人声音量
        Parameters:
        volume - 人声音量大小 范围:[0 ~ 100] 默认:50
        Throws:
        java.lang.IllegalStateException
        java.lang.IllegalArgumentException
      • setCaptureVolume

        void setCaptureVolume​(int volume)
                       throws java.lang.IllegalStateException,
                              java.lang.IllegalArgumentException
        设置背景音乐混音 音乐音量
        Parameters:
        volume - 音乐音量大小 范围:[0 ~ 100] 默认:50
        Throws:
        java.lang.IllegalStateException
        java.lang.IllegalArgumentException
      • setAudioDenoise

        void setAudioDenoise​(boolean on)
                      throws java.lang.IllegalStateException
        设置音频降噪
        Parameters:
        on - true:开启 false:关闭
        Throws:
        java.lang.IllegalStateException
      • setQualityMode

        void setQualityMode​(AlivcQualityModeEnum mode)
                     throws java.lang.IllegalStateException
        设置视频质量模式
        Parameters:
        mode -
        Throws:
        java.lang.IllegalStateException
      • setPreviewMode

        void setPreviewMode​(AlivcPreviewDisplayMode mode)
                     throws java.lang.IllegalStateException
        设置预览显示模式
        Parameters:
        mode -
        Throws:
        java.lang.IllegalStateException
      • pauseScreenCapture

        void pauseScreenCapture()
                         throws java.lang.IllegalStateException
        暂停录屏推流(隐私开)
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush/已经pause
      • resumeScreenCapture

        void resumeScreenCapture()
                          throws java.lang.IllegalStateException
        恢复录屏推流(隐私关)
        Throws:
        java.lang.IllegalStateException - 如果状态不对,例如还未初始化/未startPreview/未startPush/未pause/已resume
      • changeResolution

        void changeResolution​(AlivcResolutionEnum resolutionEnum)
        change resolution dynamically
      • addWaterMark

        void addWaterMark​(java.lang.String path,
                          float x,
                          float y,
                          float width)
        添加水印,起点位置坐标x[0,width) y[0,height),宽度(0,width],最多添加3个 需在startPreview之后调用
        Parameters:
        path - 水印图片
        x - 水印左上角x轴位置 相对位置 0~1
        y - 水印右上角y轴位置 相对位置 0~1
        width - 水印显示宽度 相对位置 0~1
      • setWatermarkVisible

        void setWatermarkVisible​(boolean visible)
        设置水印可见
        Parameters:
        visible - 是否可见
      • startCamera

        int startCamera​(android.view.SurfaceView surfaceView)
                 throws java.lang.IllegalStateException
        录屏模式下,开启摄像头预览 如果不需要预览,则surfaceview填为null
        Parameters:
        surfaceView -
        Returns:
        Throws:
        java.lang.IllegalStateException
      • stopCamera

        void stopCamera()
        录屏模式下,关闭摄像头预览
      • setScreenOrientation

        void setScreenOrientation​(int orientation)
        录屏模式下,设置感应的屏幕旋转角度
        Parameters:
        orientation -
      • startCameraMix

        int startCameraMix​(float x,
                           float y,
                           float w,
                           float h)
        录屏模式下,开启摄像头混流
        Parameters:
        x - 混流显示x初始位置(0~1.0f)
        y - 混流显示y初始位置(0~1.0f)
        w - 混流显示宽度(0~1.0f)
        h - 混流显示高度(0~1.0f)
        Returns:
      • stopCameraMix

        void stopCameraMix()
        录屏模式下,停止摄像头混流
      • inputStreamVideoPtr

        void inputStreamVideoPtr​(long dataptr,
                                 int width,
                                 int height,
                                 int stride,
                                 int size,
                                 long pts,
                                 int rotation)
        输入自定义视频流
        Parameters:
        dataptr - native内存指针
        width - 视频图像宽度
        height - 视频图像高度
        size - 视频图像size
        pts - 视频图像pts(us)
        rotation - 视频图像旋转角度
      • inputStreamVideoData

        void inputStreamVideoData​(byte[] data,
                                  int width,
                                  int height,
                                  int stride,
                                  int size,
                                  long pts,
                                  int rotation)
        输入自定义视频流
        Parameters:
        data - 视频图像byte array
        width - 视频图像宽度
        height - 视频图像高度
        size - 视频图像size
        pts - 视频图像pts(us)
        rotation - 视频图像旋转角度
      • inputStreamAudioPtr

        void inputStreamAudioPtr​(long dataPtr,
                                 int size,
                                 int sampleRate,
                                 int channels,
                                 long pts)
        输入自定义音频数据
        Parameters:
        dataPtr - 音频数据native内存指针
        size -
        pts - 音频数据pts(US)
      • inputStreamAudioData

        void inputStreamAudioData​(byte[] data,
                                  int size,
                                  int sampleRate,
                                  int channels,
                                  long pts)
        输入自定义音频数据
        Parameters:
        data - 音频数据 byte array
        size -
        pts - 音频数据pts(US)
      • addDynamicsAddons

        int addDynamicsAddons​(java.lang.String path,
                              float x,
                              float y,
                              float w,
                              float h)
        添加动态贴纸
        Parameters:
        path - 贴纸路径,带config.json
        x - 显示起始x位置(0~1.0f)
        y - 显示起始y位置(0~1.0f)
        w - 显示宽度(0~1.0f)
        h - 显示高度(0~1.0f)
        Returns:
        id 贴纸id
      • removeDynamicsAddons

        void removeDynamicsAddons​(int id)
        删除动态贴纸
        Parameters:
        id - 贴纸id
      • setExposure

        void setExposure​(int exposure)
        设置采集曝光
      • getCurrentExposure

        int getCurrentExposure()
        获取采集曝光
      • getSupportedMinExposure

        int getSupportedMinExposure()
        获取采集支持最小曝光
      • getSupportedMaxExposure

        int getSupportedMaxExposure()
        获取采集支持最大曝光