3.8 播放器 模块API手册#

前言#

概述#

本文档主要介绍K230_CanMV 播放器模块API的使用。

读者对象#

本文档(本指南)主要适用于以下人员:

  • 技术支持工程师

  • 软件开发工程师

修订记录#

文档版本号

修改说明

修改者

日期

V1.0

初版

sxp

2023-10-27

V2.0

支持不同的显示播放设备

sxp

2024-09-12

1. 概述#

此文档介绍K230_CanMV 播放器模块API,可播放mp4格式文件。支持音视频同时播放,音频支持g711a/u,视频支持H264/H265。

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(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 playe_event_type#

【描述】

编码格式类型

【成员】

成员名称

描述

K_PLAYER_EVENT_EOF

播放结束

K_PLAYER_EVENT_PROGRESS

播放进度

4. 示例程序#

4.1 例程1#

from media.player import *
import os

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屏幕作为输出显示,最大分辨率800*480
    # 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 over")

play_mp4_test("/sdcard/examples/test.mp4")