期待结果和实际结果
一号代码可以实现重复播放第二次视频,二号代码我想实现只播放视频前15秒,再重新播放,发生报错
软硬件版本信息
嘉立创庐山派开发板
2025年3月28号的固件(带着LCKFB的固件)
错误日志
弹窗信息如下:
RuntimeError: MediaManager, vb deinit failed(-1)
期待结果和实际结果
一号代码可以实现重复播放第二次视频,二号代码我想实现只播放视频前15秒,再重新播放,发生报错
软硬件版本信息
嘉立创庐山派开发板
2025年3月28号的固件(带着LCKFB的固件)
错误日志
弹窗信息如下:
RuntimeError: MediaManager, vb deinit failed(-1)
重现步骤
(一):
from media.player import *
import os
import time
start_play = False
def player_event(event, data):
global start_play
print(f"Event: {event}, Data: {data}") # 打印 event 和 data
if event == K_PLAYER_EVENT_EOF:
start_play = False
def play_mp4_test(filename):
global start_play
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/test/test.mp4")
play_mp4_test("/sdcard/test/test.mp4")
(二):
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
time_old = time.time()
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)
time_new = time.time()
if time_new - time_old >= 15:
player_event(event=0,data=0)
print("播放结束")
player.stop()
time.sleep(0.1)
play_mp4_test("/sdcard/test/test.mp4")
play_mp4_test("/sdcard/test/test.mp4")
错误日志
弹窗信息如下:
RuntimeError: MediaManager, vb deinit failed(-1)
有代码实在是发送不了,只能评论区里发,抱歉
如果你需要实现播放指定时间的视频,需要自己实现。参照/src/canmv/port/builtin_py/media/player.py,当前实现是mp4 demuxer到文件尾部才停止播放,你可以修改demuxer指定数量的帧数后停止解析即可。