今日爬坑
多媒体库中的 medialist+mediaplayer组合是个坑。
虽然,可以很方便的实现循环播放。
但是在播放的过程中需要实现从medialist中删除一个播放文件时,会导致播放暂停,或者重新从头开始播放。很恶心当然,不是说不可以做,删除文件时,用一个变量去存储当前的文件播放进度和文件序号,删完后恢复就行了。逻辑比较复杂不说,播放进度设置还不能直接通过setpostion实现,必须用poschanged信号量去设置。尝试了下,结果写出来的代码也很乱,而且删除过程中,音乐播放还会卡。。。
解决想法
不用medialist,直接新建类继承stringlist,存储文件名集合。需要循环播放只要实现next,last,mediastate信号槽函数就行了。
这样我删除stringlist中的文件,就完全不会干扰到播放了。只要考虑,是不是删的正在播放的文件就可以了。
网友评论