# 播放信息获取 (/zh-CN/api-reference/rtc/cpp-all-platforms/play/mediaplayer/mediaplayer-info)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="toc_mediaplayer_info"></a>

<a id="api_imediaplayer_getaudiobufferdelay"></a>

<a id="ariaid-title2"></a>

## getAudioBufferDelay [#getaudiobufferdelay]

获取播放媒体文件时的音频缓冲延迟。

<a id="api_imediaplayer_getaudiobufferdelay__prototype"></a>

```cpp
virtual int getAudioBufferDelay(int32_t& delayMs) = 0;
```

<a id="api_imediaplayer_getaudiobufferdelay__detailed_desc"></a>

<a id="api_imediaplayer_getaudiobufferdelay__parameters"></a>

### 参数 [#参数]

<ParameterList>
<a id="delayms"></a>
<Parameter name="delayMs">

输出参数，表示播放媒体文件时的音频缓冲延迟，单位为毫秒。

</Parameter>
</ParameterList>

<a id="api_imediaplayer_getaudiobufferdelay__return_values"></a>

### 返回值 [#返回值]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类]

- [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_getduration"></a>

<a id="ariaid-title3"></a>

## getDuration [#getduration]

获取媒体资源的时长。

<a id="api_imediaplayer_getduration__prototype"></a>

```cpp
virtual int getDuration(int64_t& duration) = 0;
```

<a id="api_imediaplayer_getduration__detailed_desc"></a>

<a id="api_imediaplayer_getduration__parameters"></a>

### 参数 [#参数-1]

<ParameterList>
<a id="duration"></a>
<Parameter name="duration">

输出参数，媒体文件的总时长（毫秒）。

</Parameter>
</ParameterList>

<a id="api_imediaplayer_getduration__return_values"></a>

### 返回值 [#返回值-1]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-1]

- [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_getmediaplayerid"></a>

<a id="ariaid-title4"></a>

## getMediaPlayerId [#getmediaplayerid]

获取媒体播放器的 ID。

<a id="api_imediaplayer_getmediaplayerid__prototype"></a>

```cpp
virtual int getMediaPlayerId() const = 0;
```

<a id="api_imediaplayer_getmediaplayerid__detailed_desc"></a>

<a id="api_imediaplayer_getmediaplayerid__return_values"></a>

### 返回值 [#返回值-2]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-2]

- [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_getmute"></a>

<a id="ariaid-title5"></a>

## getMute [#getmute]

查询媒体资源是否处于静音状态。

<a id="api_imediaplayer_getmute__prototype"></a>

```cpp
virtual int getMute(bool& muted) = 0;
```

<a id="api_imediaplayer_getmute__detailed_desc"></a>

<a id="api_imediaplayer_getmute__parameters"></a>

### 参数 [#参数-2]

<ParameterList>
<a id="muted"></a>
<Parameter name="muted">

输出参数。媒体资源是否处于静音状态：

- true：已静音。
- false：未静音。

</Parameter>
</ParameterList>

<a id="api_imediaplayer_getmute__return_values"></a>

### 返回值 [#返回值-3]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-3]

- [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_getplayoutvolume"></a>

<a id="ariaid-title6"></a>

## getPlayoutVolume [#getplayoutvolume]

获取本地播放音量。

<a id="api_imediaplayer_getplayoutvolume__prototype"></a>

```cpp
virtual int getPlayoutVolume(int& volume) = 0;
```

<a id="api_imediaplayer_getplayoutvolume__detailed_desc"></a>

<a id="api_imediaplayer_getplayoutvolume__parameters"></a>

### 参数 [#参数-3]

<ParameterList>
<a id="volume"></a>
<Parameter name="volume">

输出参数，本地播放音量，取值范围为 0 到 100：

- 0：静音。
- 100：（默认）原始音量。

</Parameter>
</ParameterList>

<a id="api_imediaplayer_getplayoutvolume__return_values"></a>

### 返回值 [#返回值-4]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-4]

- [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_getplayposition"></a>

<a id="ariaid-title7"></a>

## getPlayPosition [#getplayposition]

获取当前音效文件的本地播放进度。

<a id="api_imediaplayer_getplayposition__prototype"></a>

```cpp
virtual int getPlayPosition(int64_t& pos) = 0;
```

<a id="api_imediaplayer_getplayposition__detailed_desc"></a>

<a id="api_imediaplayer_getplayposition__parameters"></a>

### 参数 [#参数-4]

<ParameterList>
<a id="pos"></a>
<Parameter name="pos">

输出参数，音效文件的播放位置（单位：毫秒）。

</Parameter>
</ParameterList>

<a id="api_imediaplayer_getplayposition__return_values"></a>

### 返回值 [#返回值-5]

- 0：方法调用成功。
- &lt; 0：方法调用失败，详见 [MEDIA_PLAYER_REASON](/zh-CN/api-reference/rtc/cpp-all-platforms/enum-mediaplayerreason)。

### 所属接口类 [#所属接口类-5]

- [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_getplaysrc_imediaplayer"></a>

<a id="ariaid-title8"></a>

## getPlaySrc [#getplaysrc]

获取当前正在播放的媒体资源路径。

<a id="api_imediaplayer_getplaysrc_imediaplayer__prototype"></a>

```cpp
virtual const char* getPlaySrc() = 0;
```

<a id="api_imediaplayer_getplaysrc_imediaplayer__detailed_desc"></a>

<a id="api_imediaplayer_getplaysrc_imediaplayer__return_values"></a>

### 返回值 [#返回值-6]

- 方法调用成功时，返回当前正在播放的媒体资源路径。
- 方法调用失败，返回空字符串。

### 所属接口类 [#所属接口类-6]

- [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_getpublishsignalvolume"></a>

<a id="ariaid-title9"></a>

## getPublishSignalVolume [#getpublishsignalvolume]

获取用于发布的媒体文件音量。

<a id="api_imediaplayer_getpublishsignalvolume__prototype"></a>

```cpp
virtual int getPublishSignalVolume(int& volume) = 0;
```

<a id="api_imediaplayer_getpublishsignalvolume__detailed_desc"></a>

<a id="api_imediaplayer_getpublishsignalvolume__parameters"></a>

### 参数 [#参数-5]

<ParameterList>
<a id="volume-1"></a>
<Parameter name="volume">

输出参数，用于获取远端播放的音量。

</Parameter>
</ParameterList>

<a id="api_imediaplayer_getpublishsignalvolume__return_values"></a>

### 返回值 [#返回值-7]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-7]

- [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_getstate"></a>

<a id="ariaid-title10"></a>

## getState [#getstate]

获取当前播放状态。

<a id="api_imediaplayer_getstate__prototype"></a>

```cpp
virtual media::base::MEDIA_PLAYER_STATE getState() = 0;
```

<a id="api_imediaplayer_getstate__detailed_desc"></a>

<a id="api_imediaplayer_getstate__return_values"></a>

### 返回值 [#返回值-8]

方法调用成功，返回当前播放状态，详见 [MEDIA_PLAYER_STATE](/zh-CN/api-reference/rtc/cpp-all-platforms/enum-mediaplayerstate)。

### 所属接口类 [#所属接口类-8]

- [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_getstreamcount"></a>

<a id="ariaid-title11"></a>

## getStreamCount [#getstreamcount]

获取媒体资源中的媒体流数量。

<a id="api_imediaplayer_getstreamcount__prototype"></a>

```cpp
virtual int getStreamCount(int64_t& count) = 0;
```

<a id="api_imediaplayer_getstreamcount__detailed_desc"></a>

:::note
注： 在调用该方法前，请先调用 [open](/zh-CN/api-reference/rtc/cpp-all-platforms/play/mediaplayer/mediaplayer-open#api_imediaplayer_open) 方法，并等待 [onPlayerSourceStateChanged](/zh-CN/api-reference/rtc/cpp-all-platforms/play/mediaplayer/mediaplayer-observer#callback_imediaplayersourceobserver_onplayersourcestatechanged) 回调报告状态 `PLAYER_STATE_OPEN_COMPLETED`。
:::

<a id="api_imediaplayer_getstreamcount__parameters"></a>

### 参数 [#参数-6]

<ParameterList>
<a id="count"></a>
<Parameter name="count">

输出参数，媒体资源中的媒体流数量。详见 `int64_t`

</Parameter>
</ParameterList>

<a id="api_imediaplayer_getstreamcount__return_values"></a>

### 返回值 [#返回值-9]

- 0：方法调用成功。
- &lt; 0：方法调用失败，详见 [MEDIA_PLAYER_REASON](/zh-CN/api-reference/rtc/cpp-all-platforms/enum-mediaplayerreason)。

### 所属接口类 [#所属接口类-9]

- [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_getstreaminfo"></a>

<a id="ariaid-title12"></a>

## getStreamInfo [#getstreaminfo]

获取媒体流的详细信息。

<a id="api_imediaplayer_getstreaminfo__prototype"></a>

```cpp
virtual int getStreamInfo(int64_t index, media::base::PlayerStreamInfo* info) = 0;
```

<a id="api_imediaplayer_getstreaminfo__detailed_desc"></a>

<a id="api_imediaplayer_getstreaminfo__timing"></a>

### 调用时机 [#调用时机]

在调用 [getStreamCount](/zh-CN/api-reference/rtc/cpp-all-platforms/play/mediaplayer/mediaplayer-info#api_imediaplayer_getstreamcount) 方法之后调用该方法。

<a id="api_imediaplayer_getstreaminfo__parameters"></a>

### 参数 [#参数-7]

<ParameterList>
<a id="index"></a>
<Parameter name="index">

媒体流的索引。该参数需小于 [getStreamCount](/zh-CN/api-reference/rtc/cpp-all-platforms/play/mediaplayer/mediaplayer-info#api_imediaplayer_getstreamcount) 返回的 `count` 值。

</Parameter>
<a id="info"></a>
<Parameter name="info">

输出参数，媒体流的详细信息。详见 [PlayerStreamInfo](/zh-CN/api-reference/rtc/cpp-all-platforms/class-playerstreaminfo)。

</Parameter>
</ParameterList>

<a id="api_imediaplayer_getstreaminfo__return_values"></a>

### 返回值 [#返回值-10]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-10]

- [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer)

<a id="callback_imediaplayersourceobserver_onplayerplaybackstats"></a>

<a id="ariaid-title13"></a>

## onPlayerPlaybackStats [#onplayerplaybackstats]

播放中的媒体文件的统计信息回调。

<a id="callback_imediaplayersourceobserver_onplayerplaybackstats__prototype"></a>

```cpp
virtual void onPlayerPlaybackStats(const media::base::PlayerPlaybackStats& stats)
```

<a id="callback_imediaplayersourceobserver_onplayerplaybackstats__detailed_desc"></a>

该回调每秒触发一次，用于报告播放中的媒体文件的统计信息。

<a id="callback_imediaplayersourceobserver_onplayerplaybackstats__parameters"></a>

### 参数 [#参数-8]

<ParameterList>
<a id="stats"></a>
<Parameter name="stats">

媒体文件的统计信息。详见 [PlayerPlaybackStats](/zh-CN/api-reference/rtc/cpp-all-platforms/class-playerplaybackstats)。

</Parameter>
</ParameterList>

### 所属接口类 [#所属接口类-11]

- [IMediaPlayerSourceObserver](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayersourceobserver)
