重现步骤
期待结果和实际结果
软硬件版本信息
错误日志
尝试解决过程
补充材料
这是代码from media.player import *
from machine import TOUCH
import time
start_play = False # 标记是否正在播放视频
def player_event(event, data):
global start_play
if event == K_PLAYER_EVENT_EOF: # 播放结束事件
print("视频播放结束")
start_play = False
def play_mp4_test(filename):
global start_play
try:
print(f"尝试加载并播放 {filename}")
#使用 IDE 作为输出显示,支持任意分辨率;适用于 BPI 开发板
player = Player(Display.VIRT)
# 使用 ST7701 LCD 屏幕作为输出显示,最大分辨率为 800x480
player = Player(Display.ST7701) # 使用 HDMI 作为输出显示
player.load(filename)
player.set_event_callback(player_event)
player.start()
start_play = True
print("视频开始播放")
return player
except Exception as e:
print(f"播放失败: {e}")
return None
# 实例化TOUCH设备0
tp = TOUCH(0)
def check_touch():
"""检查是否有触摸事件发生"""
p = tp.read()
if p: # 如果发生了触摸事件
print(p) # 打印原始触摸数据
# 打印每个点坐标信息,最大5点。
for i in range(len(p)):
print('x'+str(i)+'=', p[i].x, 'y'+str(i)+'=', p[i].y)
if __name__ == "__main__":
video_player = None # 初始化视频播放器为None
filename = "/sdcard/examples/utils/1_1.mp4"
while True:
# 检查触摸事件
check_touch()
if not start_play:
# 如果当前没有播放视频,则加载并开始播放
if video_player is not None:
try:
video_player.stop() # 确保停止之前的播放实例
except Exception as e:
print(f"停止播放失败: {e}")
video_player = None
video_player = play_mp4_test(filename)
# 在这里可以打印一些状态信息或其他逻辑
if start_play:
print("正在播放视频...")
time.sleep(0.1) # 给CPU一个短暂休息的时间,避免占用过高解决视频不能重复播放的问题尽量不要大更改符合k230代码规范from media.player import *
from machine import TOUCH
import time
start_play = False # 标记是否正在播放视频
def player_event(event, data):
global start_play
if event == K_PLAYER_EVENT_EOF: # 播放结束事件
print("视频播放结束")
start_play = False
def play_mp4_test(filename):
global start_play
try:
print(f"尝试加载并播放 {filename}")
#使用 IDE 作为输出显示,支持任意分辨率;适用于 BPI 开发板
player = Player(Display.VIRT)
# 使用 ST7701 LCD 屏幕作为输出显示,最大分辨率为 800x480
player = Player(Display.ST7701) # 使用 HDMI 作为输出显示
player.load(filename)
player.set_event_callback(player_event)
player.start()
start_play = True
print("视频开始播放")
return player
except Exception as e:
print(f"播放失败: {e}")
return None
# 实例化TOUCH设备0
tp = TOUCH(0)
def check_touch():
"""检查是否有触摸事件发生"""
p = tp.read()
if p: # 如果发生了触摸事件
print(p) # 打印原始触摸数据
# 打印每个点坐标信息,最大5点。
for i in range(len(p)):
print('x'+str(i)+'=', p[i].x, 'y'+str(i)+'=', p[i].y)
if __name__ == "__main__":
video_player = None # 初始化视频播放器为None
filename = "/sdcard/examples/utils/1_1.mp4"
while True:
# 检查触摸事件
check_touch()
if not start_play:
# 如果当前没有播放视频,则加载并开始播放
if video_player is not None:
try:
video_player.stop() # 确保停止之前的播放实例
except Exception as e:
print(f"停止播放失败: {e}")
video_player = None
video_player = play_mp4_test(filename)
# 在这里可以打印一些状态信息或其他逻辑
if start_play:
print("正在播放视频...")
time.sleep(0.1) # 给CPU一个短暂休息的时间,避免占用过高解决视频不能重复播放的问题尽量不要大更改符合k230代码规范
这个是错误日志