3.8 播放器
模块 API 手册
1. 概述
本文件详细介绍 K230_CanMV 播放器模块 API,旨在支持 MP4 格式文件的播放。该模块能够同时播放音频与视频,音频格式支持 G.711A/U,视频格式支持 H.264/H.265 编码。
2. API 介绍
该模块提供了 Player
类,包含以下方法:
2.1 构造函数
描述
根据指定的 display_type
构造 Player
对象。用户需先创建 Player
对象以进行后续操作。
语法
python
player = Player(Display.VIRT, [display_to_ide])
1
参数
参数名称 | 描述 | 输入/输出 | 说明 |
---|---|---|---|
display_type | 显示设备类型 | 输入 | |
display_to_ide | 是否同时输出到 IDE 虚拟屏 | 输入 |
返回值
返回值 | 描述 |
---|---|
Player 对象 | 创建的 Player 实例 |
示例
python
player = Player(Display.VIRT)
player = Player(Display.ST7701)
player = Player(Display.LT9611)
1
2
3
2
3
2.2 Player.load
描述
加载指定文件,目前版本仅支持 MP4 格式文件。
语法
python
player = Player()
player.load("test.mp4")
1
2
2
参数
参数名称 | 描述 | 输入/输出 |
---|---|---|
filename | 文件名称 | 输入 |
返回值
返回值 | 描述 |
---|---|
0 | 成功 |
非 0 | 失败 |
注意事项
当前版本仅支持播放 MP4 格式文件。
2.3 Player.start
描述
开始播放音视频内容。
语法
python
player = Player()
player.start()
1
2
2
参数
无
返回值
返回值 | 描述 |
---|---|
0 | 成功 |
非0 | 失败 |
2.4 Player.pause
描述
暂停当前播放。
语法
python
player = Player()
player.pause()
1
2
2
参数
无
返回值
返回值 | 描述 |
---|---|
0 | 成功 |
非0 | 失败 |
2.5 Player.resume
描述
恢复播放。
语法
python
player = Player()
player.resume()
1
2
2
参数
无
返回值
返回值 | 描述 |
---|---|
0 | 成功 |
非0 | 失败 |
2.6 Player.stop
描述
停止播放。
语法
python
player = Player()
player.stop()
1
2
2
参数
无
返回值
返回值 | 描述 |
---|---|
0 | 成功 |
非0 | 失败 |
2.7 Player.set_event_callback
描述
设置播放事件的回调函数。
参数
参数名称 | 描述 | 输入/输出 |
---|---|---|
callback | 回调函数名称 | 输入 |
语法
python
def player_event(event, data):
pass
player = Player()
player.set_event_callback(callback=player_event)
1
2
3
4
5
2
3
4
5
返回值
返回值 | 描述 |
---|---|
0 | 成功 |
非0 | 失败 |
3. 数据结构描述
3.1 play_event_type
描述
定义了播放事件的类型。
成员
成员名称 | 描述 |
---|---|
K_PLAYER_EVENT_EOF | 播放结束 |
K_PLAYER_EVENT_PROGRESS | 播放进度 |
4. 示例程序
4.1 例程 1
python
from media.player import *
import os
import time
start_play = False
def player_event(event, data):
global start_play
if event == K_PLAYER_EVENT_EOF:
start_play = False
def play_mp4_test(filename):
global start_play
# 使用 IDE 作为输出显示,支持任意分辨率;适用于 BPI 开发板
player = Player(Display.VIRT)
# 使用 ST7701 LCD 屏幕作为输出显示,最大分辨率为 800x480
# player = Player(Display.ST7701)
# 使用 HDMI 作为输出显示
# player = Player(Display.LT9611)
player.load(filename)
player.set_event_callback(player_event)
player.start()
start_play = True
while start_play:
time.sleep(0.1)
player.stop()
print("播放结束")
play_mp4_test("/sdcard/examples/test.mp4")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32