jancd/qiniu-developer_ShareGPT huggingface dataset:
human: 如何处理七牛云的实时音视频QNMediaRecorderConfig

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android
>QNMediaRecorderConfig

#  QNMediaRecorderConfig

最近更新时间: 2024-06-28 17:56:01

本地音视频存储的配置类，可在
[QNMediaRecorder.startRecording](https://developer.qiniu.com/rtc/api/12726/QNMediaRecorder-
Android#startRecording) 时传入

Index

Core Methods

  * QNMediaRecorderConfig
  * QNMediaRecorderConfig
  * QNMediaRecorderConfig
  * setLocalAudioTrack
  * setLocalVideoTrack
  * getFilePath
  * getLocalAudioTrack
  * getLocalVideoTrack

Core Methods

QNMediaRecorderConfig

  * QNMediaRecorderConfig(String filePath)
  * 构造方法

> 1\. 请确保路径完整精确到文件名和类型，存在有效且有读写权限
>
> 2\. 支持 aac、wav、mp4

Parameters

    * filePath: String 

文件存储路径

QNMediaRecorderConfig

  * QNMediaRecorderConfig(String filePath, QNLocalAudioTrack localAudioTrack)
  * 构造方法

> 1\. 请确保路径完整精确到文件名和类型，存在有效且有读写权限
>
> 2\. 支持 aac、wav、mp4
>
> 3\. 仅支持一路音频轨的设置，重复设置会被覆盖

Parameters

    * filePath: String 

文件存储路径

    * localAudioTrack: [QNLocalAudioTrack](https://developer.qiniu.com/rtc/api/8660/QNLocalAudioTrack)

需要录制的音频 track

QNMediaRecorderConfig

  * QNMediaRecorderConfig(String filePath, [QNLocalAudioTrack](https://developer.qiniu.com/rtc/api/8660/QNLocalAudioTrack) localAudioTrack, [QNLocalVideoTrack](https://developer.qiniu.com/rtc/api/8663/QNLocalVideoTrack) localVideoTrack)
  * 构造方法

> 1\. 请确保路径完整精确到文件名和类型，存在有效且有读写权限
>
> 2\. 支持 aac、wav、mp4
>
> 3\. 仅支持一路音频 track 和一路视频 track 的设置，重复设置会被覆盖

Parameters

    * filePath: String 

文件存储路径

    * localAudioTrack: [QNLocalAudioTrack](https://developer.qiniu.com/rtc/api/8660/QNLocalAudioTrack)

需要录制的音频 track

    * localVideoTrack: [QNLocalVideoTrack](https://developer.qiniu.com/rtc/api/8663/QNLocalVideoTrack)

需要录制的视频 track

setLocalAudioTrack

  * void setLocalAudioTrack([QNLocalAudioTrack](https://developer.qiniu.com/rtc/api/8660/QNLocalAudioTrack) localAudioTrack)
  * 设置需要录制的音频 track

> 仅支持一路音频 track 的设置，重复设置会被覆盖

Parameters

    * localAudioTrack: [QNLocalAudioTrack](https://developer.qiniu.com/rtc/api/8660/QNLocalAudioTrack)

需要录制的音频 track

setLocalVideoTrack

  * void setLocalVideoTrack([QNLocalVideoTrack](https://developer.qiniu.com/rtc/api/8663/QNLocalVideoTrack) localVideoTrack)
  * 设置需要录制的视频 track

> 仅支持一路视频 track 的设置，重复设置会被覆盖

Parameters

    * localVideoTrack: [QNLocalVideoTrack](https://developer.qiniu.com/rtc/api/8663/QNLocalVideoTrack)

需要录制的视频 track

getFilePath

  * String getFilePath()
  * 获取存储文件路径

Returns 存储文件路径

getLocalAudioTrack

  * [QNLocalAudioTrack](https://developer.qiniu.com/rtc/api/8660/QNLocalAudioTrack) getLocalAudioTrack()
  * 获取需要录制的音频 track

Returns 需要录制的音频 track

getLocalVideoTrack

  * [QNLocalVideoTrack](https://developer.qiniu.com/rtc/api/8663/QNLocalVideoTrack) getLocalVideoTrack()
  * 获取需要录制的视频 track

Returns 需要录制的视频 track

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNMediaPlayer

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android >QNMediaPlayer

#  QNMediaPlayer

最近更新时间: 2024-08-23 18:01:56

内置媒体播放器核心类，支持 mp3、mp4、flv 等文件的播放

Index

Core Methods

  * setMediaPlayerListener
  * play
  * resume
  * pause
  * stop
  * seekTo
  * getDuration
  * getCurrentPosition
  * setLoopCount
  * getCurrentPlayerState
  * setView
  * getMediaPlayerVideoTrack
  * getMediaPlayerAudioTrack

Core Methods

setMediaPlayerListener

  * int setMediaPlayerListener([QNMediaPlayerListener](https://developer.qiniu.com/rtc/api/12750/QNMediaPlayerListener) listener)
  * 设置媒体播放器的回调监听函数

Parameters

    * listener: [QNMediaPlayerListener](https://developer.qiniu.com/rtc/api/12750/QNMediaPlayerListener)

回调监听函数

play

  * int play([QNMediaSource](https://developer.qiniu.com/rtc/api/12751/QNMediaSource) source)
  * 开始播放

Parameters

    * source: [QNMediaSource](https://developer.qiniu.com/rtc/api/12751/QNMediaSource)

待播放的媒体文件

Returns 操作是否成功

resume

  * int resume()
  * 恢复播放

Returns 操作是否成功

pause

  * int pause()
  * 暂停播放

Returns 操作是否成功

stop

  * int stop()
  * 停止播放

Returns 操作是否成功

seekTo

  * int seekTo(long positionMs)
  * 移动到指定的位置

Parameters

    * positionMs: long 

指定位置

Returns 操作是否成功

getDuration

  * int getDuration()
  * 获取媒体文件的时长

> 需要在收到
> [QNPlayerState.PLAYING](https://developer.qiniu.com/rtc/api/12752/QNPlayerState#PLAYING)
> 状态变更后调用此方法

Returns 时长，单位 ms

getCurrentPosition

  * int getCurrentPosition()
  * 获取当前的播放位置

Returns 播放位置，单位 ms

setLoopCount

  * int setLoopCount(int count)
  * 设置媒体循环播放的次数

Parameters

    * count: int 

除默认播放外，循环播放的次数

Returns 操作是否成功

getCurrentPlayerState

  * [QNPlayerState](https://developer.qiniu.com/rtc/api/12752/QNPlayerState) getCurrentPlayerState()
  * 获取当前的播放器状态

Returns 当前播放器状态

setView

  * int setView([QNRenderView](https://developer.qiniu.com/rtc/api/8683/QNRenderView) view)
  * 设置视频渲染视图

Parameters

    * view: [QNRenderView](https://developer.qiniu.com/rtc/api/8683/QNRenderView)

渲染视图

Returns 操作是否成功

getMediaPlayerVideoTrack

  * [QNCustomVideoTrack](https://developer.qiniu.com/rtc/api/8649/QNCustomVideoTrack) getMediaPlayerVideoTrack()
  * 获取播放器中的视频 track

> 获取到 Track 后，便可通过
> [QNRTCClient.publish](https://developer.qiniu.com/rtc/api/8684/QNRTCClient#publish)
> 等接口进行 Track 的发布等操作

Returns 视频 Track，没有视频则返回 null

getMediaPlayerAudioTrack

  * [QNCustomAudioTrack](https://developer.qiniu.com/rtc/api/8646/QNCustomAudioTrack) getMediaPlayerAudioTrack()
  * 获取播放器中的音频 track

> 获取到 Track 后，便可通过
> [QNRTCClient.publish](https://developer.qiniu.com/rtc/api/8684/QNRTCClient#publish)
> 等接口进行 Track 的发布等操作

Returns 音频 Track，没有音频则返回 null

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNMediaPlayerListener

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android
>QNMediaPlayerListener

#  QNMediaPlayerListener

最近更新时间: 2024-08-23 17:57:20

媒体播放器回调监听函数，可通过
[QNMediaPlayer.setMediaPlayerListener](https://developer.qiniu.com/rtc/api/12749/QNMediaPlayer#setMediaPlayerListener)
接口设置

Index

Core Methods

  * onPlayerStateChanged
  * onPlayerEvent
  * onPlayerPositionChanged

Core Methods

onPlayerStateChanged

  * void onPlayerStateChanged([QNPlayerState](https://developer.qiniu.com/rtc/api/12752/QNPlayerState) state)
  * 播放器状态改变时触发

Parameters

    * state: [QNPlayerState](https://developer.qiniu.com/rtc/api/12752/QNPlayerState)

播放器状态

onPlayerEvent

  * void onPlayerEvent([QNPlayerEvent](https://developer.qiniu.com/rtc/api/12753/QNPlayerEvent) event, [QNPlayerEventInfo](https://developer.qiniu.com/rtc/api/12754/QNPlayerEventInfo) info)
  * 播放器事件改变时触发

Parameters

    * event: [QNPlayerEvent](https://developer.qiniu.com/rtc/api/12753/QNPlayerEvent)

播放器事件

    * info: [QNPlayerEventInfo](https://developer.qiniu.com/rtc/api/12754/QNPlayerEventInfo)

事件信息，如错误码等

onPlayerPositionChanged

  * void onPlayerPositionChanged(long position)
  * 播放进度更新时触发

Parameters

    * position: long 

当前的播放进度，单位 ms

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNMediaSource

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android >QNMediaSource

#  QNMediaSource

最近更新时间: 2024-08-23 18:05:33

媒体播放器的文件源配置，可通过
[QNMediaPlayer.play](https://developer.qiniu.com/rtc/api/12749/QNMediaPlayer#play)
接口传入。

Index

Core Methods

  * QNMediaSource
  * getUrl

Core Methods

QNMediaSource

  * QNMediaSource(String url)
  * 构造方法

> 支持本地文件和在线文件，本地文件需要传入绝对路径，且保证文件具有相应的访问权限

Parameters

    * url: String 

播放地址

getUrl

  * String getUrl()
  * 获取待播放媒体文件的路径

Returns String

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNPlayerState

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android >QNPlayerState

#  QNPlayerState

最近更新时间: 2024-08-23 17:57:10

媒体播放器状态

Index

Properties

  * IDLE
  * PREPARE
  * PLAYING
  * PAUSE

Properties

IDLE

  * 停止状态

PREPARE

  * 准备状态

PLAYING

  * 播放状态

PAUSE

  * 暂停状态

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNPlayerEvent

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android >QNPlayerEvent

#  QNPlayerEvent

最近更新时间: 2024-08-23 17:56:38

媒体播放器事件

Index

Properties

  * NONE
  * FIRST_RENDER
  * OPEN_FILE_FAILED
  * DECODER_FAILED

Properties

NONE

  * 默认事件

FIRST_RENDER

  * 首帧渲染事件

OPEN_FILE_FAILED

  * 文件打开失败事件

DECODER_FAILED

  * 解码器异常事件

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNPlayerEventInfo

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android >QNPlayerEventInfo

#  QNPlayerEventInfo

最近更新时间: 2024-08-23 17:56:56

媒体播放器的事件信息描述，可通过
[QNMediaPlayerListener.onPlayerEvent](https://developer.qiniu.com/rtc/api/12750/QNMediaPlayerListener#onPlayerEvent)
接口回调。

Index

Core Methods

  * getErrorCode
  * getMessage

Core Methods

getErrorCode

  * int getErrorCode()
  * 获取错误码

Returns int

getMessage

  * String getMessage()
  * 获取错误描述信息

Returns String

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNConnectionState

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android >QNConnectionState

#  QNConnectionState

最近更新时间: 2022-05-12 20:09:30

连麦房间连接状态

Index

Properties

  * DISCONNECTED
  * CONNECTING
  * CONNECTED
  * RECONNECTING
  * RECONNECTED

Properties

DISCONNECTED

  * DISCONNECTED: QNConnectionState
  * 未链接状态

SDK 出现无法恢复错误时也进入该状态

CONNECTING

  * CONNECTING: QNConnectionState
  * 正在连接状态

当调用
[QNRTCClient.join](https://developer.qiniu.com/rtc/8645/QNConnectionState/8684)
后, 首先进入该状态，表示开始连接房间服务

CONNECTED

  * CONNECTED: QNConnectionState
  * 连接成功状态

当调用
[QNRTCClient.join](https://developer.qiniu.com/rtc/8645/QNConnectionState/8684)，在完成和房间服务连接后进入该状态

RECONNECTING

  * RECONNECTING: QNConnectionState
  * 正在重连状态

当和房间的已有连接由于网络中断、网络异常等原因断开，SDK 进行周期性重连时进入该状态

RECONNECTED

  * RECONNECTED: QNConnectionState
  * 重连成功状态

当从 RECONNECTING 状态，重新和房间服务建立连接后进入该状态

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNAudioQuality

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android >QNAudioQuality

#  QNAudioQuality

最近更新时间: 2022-05-12 20:09:13

描述音频质量的配置类，常用预设配置见
[QNAudioQualityPreset](https://developer.qiniu.com/rtc/8634/QNAudioQuality/8635/QNAudioQualityPreset)

Index

Core Methods

  * QNAudioQuality
  * getSampleRate
  * getChannelCount
  * getBitsPerSample
  * getBitrate

Core Methods

QNAudioQuality

  * QNAudioQuality(int sampleRate, int channelCount, int bitsPerSample, int bitrate)
  * 构造方法

Parameters

    * sampleRate: int 

采样率，出于对 Android 设备兼容性的考虑，语音通话场景下建议使用 16kHz 的采样率，否则在某些特殊设备上可能会出现回声等问题

    * channelCount: int 

声道数

    * bitsPerSample: int 

位宽

    * bitrate: int 

编码码率，单位 kbps

Returns
[QNAudioQuality](https://developer.qiniu.com/rtc/8634/QNAudioQuality/8634/QNAudioQuality)

getSampleRate

  * int getSampleRate()
  * 获取设置的音频采样率

Returns 设置的音频采样率

getChannelCount

  * int getChannelCount()
  * 获取设置的音频声道数

Returns 设置的音频声道数

getBitsPerSample

  * int getBitsPerSample()
  * 获取设置的音频位宽

Returns 设置的音频位宽

getBitrate

  * int getBitrate()
  * 获取设置的音频编码码率

Returns 设置的音频编码码率

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNAudioQualityPreset

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android
>QNAudioQualityPreset

#  QNAudioQualityPreset

最近更新时间: 2022-05-12 20:10:08

描述音频质量配置的预设类

Index

Properties

  * LOW
  * STANDARD
  * STANDARD_STEREO
  * HIGH
  * HIGH_STEREO

Properties

LOW

  * 采样率为 16000kHz, 单声道, 码率为 24kbps, 16bit 位宽

STANDARD

  * 采样率为 48000kHz, 单声道, 码率为 64kbps, 16bit 位宽

STANDARD_STEREO

  * 采样率为 48000kHz, 双声道, 码率为 80kbps, 16bit 位宽

HIGH

  * 采样率为 48000kHz, 单声道, 码率为 96kbps, 16bit 位宽

HIGH_STEREO

  * 采样率为 48000kHz, 双声道, 码率为 128kbps, 16bit 位宽

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNRTCEventListener

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android
>QNRTCEventListener

#  QNRTCEventListener

最近更新时间: 2022-05-12 20:09:42

QNRTC 全局事件回调接口，用来监听设备相关的回调事件，如音频路由改变等。可以在 QNRTC 的初始化函数
[QNRTC.init](https://developer.qiniu.com/rtc/api/8732/QNRTC#init\[1/2\]) 中传入。

Index

Core Methods

  * onAudioRouteChanged

Core Methods

onAudioRouteChanged

  * void onAudioRouteChanged([QNAudioDevice](https://developer.qiniu.com/rtc/api/8627/QNAudioDevice) device)
  * 当本地音频路由改变时会触发此回调

Parameters

    * device: [QNAudioDevice](https://developer.qiniu.com/rtc/api/8627/QNAudioDevice)

当前的音频路由信息

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNCameraEventListener

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android
>QNCameraEventListener

#  QNCameraEventListener

最近更新时间: 2023-09-25 19:10:32

摄像头状态回调接口，在
[QNCameraVideoTrack.setCameraEventListener](https://developer.qiniu.com/rtc/8637/QNCameraEventListener/8640)
中设置

Index

Core Methods

  * onCameraOpened
  * onCaptureStarted
  * onCaptureStopped
  * onError
  * onPushImageError

Core Methods

onCameraOpened

  * int[] onCameraOpened(List<Size> sizes, List<Integer> fpsAscending)
  * 当打开采集设备时触发，回调设备所支持的采集分辨率和帧率信息

> 1\. 返回选择的分辨率和帧率在 sizes 和 fpsAscending 中的下标
>
> 2\.
> 由于不同设备所支持的采集能力是不一样的，所以可能会出现实际采集分辨率和设置不符的现象，这种情况下可以通过该回调接口根据返回的设备能力选择和预期相似的采集参数

Parameters

    * sizes: List<Size>

采集设备支持的分辨率列表

    * fpsAscending: List<Integer>

采集设备支持的帧率

Returns int[]

onCaptureStarted

  * void onCaptureStarted()
  * 当开始采集时触发

onCaptureStopped

  * void onCaptureStopped()
  * 当采集停止时触发

onError

  * void onError(int errorCode, String description)
  * 当 Camera 错误发生时触发此回调

code | describe | message  
---|---|---  
ERROR_DEVICE_CAMERA | 系统摄像头错误，无权限或被占用 | 请确认用户是否同意摄像头权限或者设备摄像头占用情况  
ERROR_DEVICE_CAMERA_EVICTED | 摄像头被其他应用抢占 | 请检查用户操作是否符合预期  
  
Parameters

    * errorCode: int 

错误码

    * description: String 

错误原因

onPushImageError

  * void onPushImageError(int errorCode, String errorMessage)
  * 当图片推流出错时触发此回调

code | describe | message  
---|---|---  
ERROR_IMAGE_PARSER_FAILED | 图片解析失败 | 请检查图片资源是否合法  
  
Parameters

    * errorCode: int 

错误码

    * errorMessage: String 

错误信息

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNCameraSwitchResultCallback

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android
>QNCameraSwitchResultCallback

#  QNCameraSwitchResultCallback

最近更新时间: 2022-05-12 20:08:56

摄像头切换回调接口，可在调用
[QNCameraVideoTrack.switchCamera](https://developer.qiniu.com/rtc/8639/QNCameraSwitchResultCallback/8640)
切换摄像头时传入。

Index

Core Methods

  * onCameraSwitchDone
  * onCameraSwitchError

Core Methods

onCameraSwitchDone

  * void onCameraSwitchDone(boolean isFrontCamera)
  * 成功切换摄像头时回调

Parameters

    * isFrontCamera: boolean 

是否是前置摄像头

onCameraSwitchError

  * void onCameraSwitchError(String errorMessage)
  * 切换摄像头失败时回调

Parameters

    * errorMessage: String 

失败的错误原因

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNPublishResultCallback

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android
>QNPublishResultCallback

#  QNPublishResultCallback

最近更新时间: 2022-05-12 20:08:55

本地 Track 发布结果回调，可作为
[QNRTCClient.publish](https://developer.qiniu.com/rtc/api/8684/QNRTCClient#publish\[3/4\])
的参数传入来监听发布 Track 的返回结果

Index

Core Methods

  * onPublished
  * onError

Core Methods

onPublished

  * void onPublished()
  * 成功发布 tracks

onError

  * void onError(int errorCode, String errorMessage)
  * 发布 Track 失败

code | describe | message  
---|---|---  
ERROR_INVALID_STATE (21002) | 非法状态 | 请检查是否已经加入房间  
ERROR_INVALID_PARAMETER (10053) | 非法参数 | 请检查待发布 Track 是否为本地 Track，并且不为空  
ERROR_FATAL (21005) | 非预期错误 | RTC 生命周期异常，需要释放资源并重新初始化  
  
Parameters

    * errorCode: int 

失败的错误码

    * errorMessage: String 

失败的错误原因

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNMicrophoneEventListener

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android
>QNMicrophoneEventListener

#  QNMicrophoneEventListener

最近更新时间: 2022-05-12 20:09:27

麦克风采集事件回调，可通过调用
[QNMicrophoneAudioTrack.setMicrophoneEventListener](https://developer.qiniu.com/rtc/api/8667/QNMicrophoneAudioTrack#setMicrophoneEventListener)
接口传入。

Index

Core Methods

  * onError

Core Methods

onError

  * void onError(int errorCode, String errorMessage)
  * 麦克风采集出错时出发此回调

code | describe | message  
---|---|---  
ERROR_MIC_INIT_FAILED | 系统麦克风初始化错误，无权限或者麦克风被占用 | 请确认应用是否获取音频录制的权限或者设备麦克风的占用情况，确认后需重新发布麦克风 Track  
ERROR_MIC_CAPTURE_FAILED | 麦克风录制失败 | 请尝试取消发布并重新发布麦克风 Track  
  
Parameters

    * errorCode: int 

错误码

    * errorMessage: String 

错误信息

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNAudioFrameListener

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android
>QNAudioFrameListener

#  QNAudioFrameListener

最近更新时间: 2022-05-12 20:09:32

音频数据回调监听接口，可通过
[QNLocalAudioTrack.setAudioFrameListener](https://developer.qiniu.com/rtc/8630/QNAudioFrameListener/8660)
和
[QNRemoteAudioTrack.setAudioFrameListener](https://developer.qiniu.com/rtc/8630/QNAudioFrameListener/8674)
进行设置，用来监听本地和远端的音频 Track 数据回调。

Index

Core Methods

  * onAudioFrameAvailable

Core Methods

onAudioFrameAvailable

  * void onAudioFrameAvailable(ByteBuffer audioData, int size, int bitsPerSample, int sampleRate, int numberOfChannels)
  * 获取音频数据

Parameters

    * audioData: ByteBuffer 

音频数据

    * size: int 

音频数据大小

    * bitsPerSample: int 

音频位宽

    * sampleRate: int 

音频采样率

    * numberOfChannels: int 

音频声道数

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNAudioFrame

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android >QNAudioFrame

#  QNAudioFrame

最近更新时间: 2023-04-21 12:33:26

音频帧数据类，用于外部导入音频数据连麦的场景

Index

Core Methods

  * QNAudioFrame[1/2]
  * QNAudioFrame[2/2]
  * getData
  * getSize
  * getBitsPerSample
  * getSampleRate
  * getNumberOfChannels

Core Methods

QNAudioFrame[1/2]

  * QNAudioFrame(ByteBuffer buffer, int size, int bitsPerSample, int sampleRate, int numberOfChannels)
  * 构造方法

用于指定外部导入的音频数据格式

Parameters

    * buffer: ByteBuffer 

音频原始数据

    * size: int 

音频数据大小

    * bitsPerSample: int 

音频位宽，通常为 16

    * sampleRate: int 

音频采样率，如 16000、44100 等

    * numberOfChannels: int 

音频声道数，单声道(1)或者双声道(2)

Returns
[QNAudioFrame](https://developer.qiniu.com/rtc/8629/QNAudioFrame/8629/QNAudioFrame)

QNAudioFrame[2/2]

  * QNAudioFrame(ByteBuffer buffer, int size, QNAudioFormat audioFormat)
  * 构造方法

用于指定外部导入的音频数据格式

Parameters

    * buffer: ByteBuffer 

音频原始数据

    * size: int 

音频数据大小

    * audioFormat: [QNAudioFormat](https://developer.qiniu.com/rtc/8629/QNAudioFrame/8628/QNAudioFormat)

音频数据格式

Returns
[QNAudioFrame](https://developer.qiniu.com/rtc/8629/QNAudioFrame/8629/QNAudioFrame)

getData

  * ByteBuffer getData()
  * 获取音频数据

Returns ByteBuffer

getSize

  * int getSize()
  * 获取音频帧大小

Returns int

getBitsPerSample

  * int getBitsPerSample()
  * 获取音频位宽

Returns int

getSampleRate

  * int getSampleRate()
  * 获取音频采样率

Returns int

getNumberOfChannels

  * int getNumberOfChannels()
  * 获取音频声道数

Returns int

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNVideoFrameListener

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android
>QNVideoFrameListener

#  QNVideoFrameListener

最近更新时间: 2022-05-12 20:09:35

视频数据回调监听接口，可通过
[QNLocalVideoTrack.setVideoFrameListener](https://developer.qiniu.com/rtc/8704/QNVideoFrameListener/8663)
和
[QNRemoteVideoTrack.setVideoFrameListener](https://developer.qiniu.com/rtc/8704/QNVideoFrameListener/8680)
进行设置，用来监听本地和远端的视频 Track 数据回调。

Index

Core Methods

  * onYUVFrameAvailable
  * onTextureFrameAvailable

Core Methods

onYUVFrameAvailable

  * void onYUVFrameAvailable(byte[] data, [QNVideoFrameType](https://developer.qiniu.com/rtc/8704/QNVideoFrameListener/8705/QNVideoFrameType) type, int width, int height, int rotation, long timestampNs)
  * 视频 YUV 数据回调

Parameters

    * data: byte[] 

视频 YUV 数据

    * type: [QNVideoFrameType](https://developer.qiniu.com/rtc/8704/QNVideoFrameListener/8705/QNVideoFrameType)

视频数据类型

    * width: int 

视频宽度

    * height: int 

视频高度

    * rotation: int 

视频旋转角度

    * timestampNs: long 

视频帧时间戳，单位：ns

onTextureFrameAvailable

  * int onTextureFrameAvailable(int textureID, [QNVideoFrameType](https://developer.qiniu.com/rtc/8704/QNVideoFrameListener/8705/QNVideoFrameType) type, int width, int height, int rotation, long timestampNs, float[] transformMatrix)
  * 视频纹理数据回调, 并返回处理后的纹理 ID

> 只有 QNCameraVideoTrack 的回调才会触发此方法

Parameters

    * textureID: int 

视频纹理 ID

    * type: [QNVideoFrameType](https://developer.qiniu.com/rtc/8704/QNVideoFrameListener/8705/QNVideoFrameType)

视频数据类型

    * width: int 

视频宽度

    * height: int 

视频高度

    * rotation: int 

视频旋转角度

    * timestampNs: long 

视频帧时间戳，单位：ns

    * transformMatrix: float[] 

4x4 视频纹理变换矩阵

Returns int

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNVideoFrame

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android >QNVideoFrame

#  QNVideoFrame

最近更新时间: 2022-05-12 20:09:12

视频数据帧描述类

Index

Core Methods

  * createFromNV21
  * createFromTextureRGB

Properties

  * type
  * buffer
  * texture
  * width
  * height
  * rotation
  * timestampNs

Core Methods

createFromNV21

  * static QNVideoFrame createFromNV21(byte[] data, int width, int height, int rotation, long timestampNs)
  * 创建包含 NV21 视频数据的视频帧

Parameters

    * data: byte[] 

视频 NV21 数据

    * width: int 

视频宽度

    * height: int 

视频高度

    * rotation: int 

视频旋转角度

    * timestampNs: long 

时间戳，单位：ns

createFromTextureRGB

  * static QNVideoFrame createFromTextureRGB([QNTexture](https://developer.qiniu.com/rtc/8703/QNVideoFrame/8691/QNTexture) texture, int width, int height, int rotation, long timestampNs)
  * 创建包含 [QNTexture](https://developer.qiniu.com/rtc/8703/QNVideoFrame/8691/QNTexture) 视频数据的视频帧

Parameters

    * texture: [QNTexture](https://developer.qiniu.com/rtc/8703/QNVideoFrame/8691/QNTexture)

视频纹理数据

    * width: int 

视频宽度

    * height: int 

视频高度

    * rotation: int 

视频旋转角度

    * timestampNs: long 

时间戳，单位：ns

Properties

type

  * type: QNVideoFrameType
  * 视频数据类型

buffer

  * buffer: byte[]
  * 视频数据 NV21 buffer

texture

  * texture: [QNTexture](https://developer.qiniu.com/rtc/8703/QNVideoFrame/8691/QNTexture)
  * 视频数据纹理对象

width

  * width: int
  * 视频宽度

height

  * height: int
  * 视频高度

rotation

  * rotation: int
  * 视频旋转角度

timestampNs

  * timestampNs: long
  * 视频帧时间戳，单位：ns

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNVideoFrameType

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android >QNVideoFrameType

#  QNVideoFrameType

最近更新时间: 2022-05-12 20:09:06

视频帧数据类型

Index

Properties

  * YUV_NV21
  * TEXTURE_RGB
  * TEXTURE_OES

Properties

YUV_NV21

  * YUV_NV21: QNVideoFrameType
  * NV21 数据类型

TEXTURE_RGB

  * TEXTURE_RGB: QNVideoFrameType
  * TEXTURE 2D RGB 数据类型

TEXTURE_OES

  * TEXTURE_OES: QNVideoFrameType
  * TEXTURE OES 数据类型

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNTexture

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android >QNTexture

#  QNTexture

最近更新时间: 2022-05-12 20:09:28

纹理对象，用于外部导入场景下推送纹理，使用方式可参考[外部视频数据导入](https://developer.qiniu.com/rtc/8691/QNTexture/8767)使用指南

Index

Core Methods

  * create

Properties

  * id
  * type
  * transformMatrix
  * handler

Enum

  * TextureType

Core Methods

create

  * static QNTexture create(int id, TextureType type, float[] transformMatrix, Handler handler)
  * 创建纹理对象

Parameters

    * id: int 

纹理 ID

    * type: TextureType 

纹理类型

    * transformMatrix: float[] 

4x4 纹理变换矩阵

    * handler: Handler 

纹理所在的 GL 线程 Handler

Properties

id

  * id: int
  * 纹理 ID

type

  * type: TextureType
  * 纹理类型

transformMatrix

  * transformMatrix: float[]
  * 纹理变换矩阵

> 该矩阵为 4x4 的纹理变换矩阵，根据纹理类型的不同，处理方式也有所区别：
>
> 1\. 如果推送的纹理为 OES 纹理，则需要传入对应的纹理变换矩阵。
>
> 2\. 如果推送的纹理为 RGB 纹理，则通常只需传入单位矩阵即可。

handler

  * handler: Handler
  * 纹理所在的 GL 线程 Handler

Enum

TextureType

  * Type declaration

    * OES

    * RGB

以上内容是否对您有帮助？
human: 如何处理七牛云的实时音视频QNTrackInfoChangedListener

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android
>QNTrackInfoChangedListener

#  QNTrackInfoChangedListener

最近更新时间: 2022-05-12 20:09:09

音视频 Track 信息变化监听器，可通过调用
[QNRemoteTrack.setTrackInfoChangedListener](https://developer.qiniu.com/rtc/8820/QNTrackInfoChangedListener/8676)
接口传入

> 该监听器提供的所有回调接口均为非必需接口，您可以根据实际需要进行选择性的重写。

Index

Core Methods

  * onVideoProfileChanged
  * onMuteStateChanged

Core Methods

onVideoProfileChanged

  * void onVideoProfileChanged([QNTrackProfile](https://developer.qiniu.com/rtc/8820/QNTrackInfoChangedListener/10056/QNTrackProfile) profile)
  * [QNTrackProfile](https://developer.qiniu.com/rtc/8820/QNTrackInfoChangedListener/10056/QNTrackProfile) 变更通知

> 仅对
> [QNRemoteVideoTrack](https://developer.qiniu.com/rtc/8820/QNTrackInfoChangedListener/8680/QNRemoteVideoTrack)
> 有效

Parameters

    * profile: [QNTrackProfile](https://developer.qiniu.com/rtc/8820/QNTrackInfoChangedListener/10056/QNTrackProfile)

Track 改变后的视频质量

onMuteStateChanged

  * void onMuteStateChanged(boolean isMuted)
  * 音视频 Track 静默状态改变时回调此接口

> 音视频 Track 皆可设置

Parameters

    * isMuted: boolean 

Track 改变后的静默状态

以上内容是否对您有帮助？