视频播放问题

Viewed 105

期待结果和实际结果
一号代码可以实现重复播放第二次视频,二号代码我想实现只播放视频前15秒,再重新播放,发生报错

软硬件版本信息
嘉立创庐山派开发板
2025年3月28号的固件(带着LCKFB的固件)

错误日志
弹窗信息如下:
RuntimeError: MediaManager, vb deinit failed(-1)

2 Answers

重现步骤

(一):

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指定数量的帧数后停止解析即可。