maix dock 如何循环播放视频?(已解决)
本帖最后由 empty 于 2021-4-5 20:06 编辑第一次播放是正常的,播放结束后回到视频第一帧然后卡住。
代码如图,我把视频对象删除(_del_),后再open,也不行。怀疑是内存没释放,然后加了gc,还是不行。
完整代码:
from Maix import GPIO, I2S
#import sys
import gc
from fpioa_manager import fm
import lcd
import video
import time
lcd.init()
# AUDIO_PA_EN_PIN = None# Bit Dock and old MaixGo
AUDIO_PA_EN_PIN = 32 # Maix Go(version 2.20)
# AUDIO_PA_EN_PIN = 2 # Maixduino
''''''
# init i2s(i2s0)
i2s = I2S(I2S.DEVICE_0)
# config i2s according to audio info
i2s.channel_config(i2s.CHANNEL_1, I2S.TRANSMITTER, resolution=I2S.RESOLUTION_16_BIT,
cycles=I2S.SCLK_CYCLES_32, align_mode=I2S.RIGHT_JUSTIFYING_MODE)
# open audio PA
if AUDIO_PA_EN_PIN:
fm.register(AUDIO_PA_EN_PIN, fm.fpioa.GPIO1, force=True)
wifi_en = GPIO(GPIO.GPIO1, GPIO.OUT)
wifi_en.value(1)
fm.register(34,fm.fpioa.I2S0_OUT_D1, force=True)
fm.register(35,fm.fpioa.I2S0_SCLK, force=True)
fm.register(33,fm.fpioa.I2S0_WS, force=True)
v = video.open("/sd/2.avi")
print(v)
v.volume(50)
while True:
if v.play() == 0:
print("play end")
v.__del__()
gc.collect()
v = video.open("/sd/2.avi")
#break
v.__del__()
@Sipeed-大佬鼠 这躯体几成腐坏 发表于 2021-4-4 20:24
@Sipeed-大佬鼠
文件 open 对应的 close 呢?你怎么一直在 open 没有释放,怎么释放视频文件看文档。 Sipeed-大佬鼠 发表于 2021-4-5 15:13
文件 open 对应的 close 呢?你怎么一直在 open 没有释放,怎么释放视频文件看文档。 ...
呃。。。文档的video页面(https://wiki.sipeed.com/soft/maixpy/zh/api_reference/media/video.html)里只有说到v._del_()。没有说close。。。。。这个close是在哪有说? Sipeed-大佬鼠 发表于 2021-4-5 15:13
文件 open 对应的 close 呢?你怎么一直在 open 没有释放,怎么释放视频文件看文档。 ...
我写了del,不行。写close的就报avi类没有close方法。 这躯体几成腐坏 发表于 2021-4-6 23:00
我写了del,不行。写close的就报avi类没有close方法。
这里我同时写了del和close,但我试过单独写一个,也不行。后面再open就卡死 avi类下面只有这些方法,没有close 没解决啊,怎么那么快把我标注成已解决了 这躯体几成腐坏 发表于 2021-4-7 23:39
没解决啊,怎么那么快把我标注成已解决了
好像是有点奇怪?怎么就解决了?但这个功能我是测过的,你最好单独运行代码测试,复制两遍运行确认。
页:
[1]