3.8 播放器
模块 API 手册#
1. 概述#
本文件详细介绍 K230_CanMV 播放器模块 API,旨在支持 MP4 格式文件的播放。该模块能够同时播放音频与视频,音频格式支持 G.711A/U,视频格式支持 H.264/H.265 编码。
2. API 介绍#
该模块提供了 Player
类,包含以下方法:
2.1 构造函数#
描述
根据指定的 display_type
构造 Player
对象。用户需先创建 Player
对象以进行后续操作。
语法
player = Player(Display.VIRT, [display_to_ide])
参数
参数名称 |
描述 |
输入/输出 |
说明 |
---|---|---|---|
display_type |
显示设备类型 |
输入 |
|
display_to_ide |
是否同时输出到 IDE 虚拟屏 |
输入 |
返回值
返回值 |
描述 |
---|---|
Player 对象 |
创建的 Player 实例 |
示例
player = Player(Display.VIRT)
player = Player(Display.ST7701)
player = Player(Display.LT9611)
2.2 Player.load#
描述
加载指定文件,目前版本仅支持 MP4 格式文件。
语法
player = Player()
player.load("test.mp4")
参数
参数名称 |
描述 |
输入/输出 |
---|---|---|
filename |
文件名称 |
输入 |
返回值
返回值 |
描述 |
---|---|
0 |
成功 |
非 0 |
失败 |
注意事项
当前版本仅支持播放 MP4 格式文件。
2.3 Player.start#
描述
开始播放音视频内容。
语法
player = Player()
player.start()
参数
无
返回值
返回值 |
描述 |
---|---|
0 |
成功 |
非0 |
失败 |
2.4 Player.pause#
描述
暂停当前播放。
语法
player = Player()
player.pause()
参数
无
返回值
返回值 |
描述 |
---|---|
0 |
成功 |
非0 |
失败 |
2.5 Player.resume#
描述
恢复播放。
语法
player = Player()
player.resume()
参数
无
返回值
返回值 |
描述 |
---|---|
0 |
成功 |
非0 |
失败 |
2.6 Player.stop#
描述
停止播放。
语法
player = Player()
player.stop()
参数
无
返回值
返回值 |
描述 |
---|---|
0 |
成功 |
非0 |
失败 |
2.7 Player.set_event_callback#
描述
设置播放事件的回调函数。
参数
参数名称 |
描述 |
输入/输出 |
---|---|---|
callback |
回调函数名称 |
输入 |
语法
def player_event(event, data):
pass
player = Player()
player.set_event_callback(callback=player_event)
返回值
返回值 |
描述 |
---|---|
0 |
成功 |
非0 |
失败 |
3. 数据结构描述#
3.1 play_event_type#
描述
定义了播放事件的类型。
成员
成员名称 |
描述 |
---|---|
K_PLAYER_EVENT_EOF |
播放结束 |
K_PLAYER_EVENT_PROGRESS |
播放进度 |
4. 示例程序#
4.1 例程 1#
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")