如何通过线程控制VLC实例
我刚开始学习Python,所以我都是通过网上的教程和代码来学习,但我遇到了一个问题,尝试了很久都没解决。希望我的描述能让人理解,因为我自己也不是很明白这个问题……
我有两个文件,每个文件里都有一个用面向对象编程(OOP)写的类。mainfile.py这个文件的类是用来获取用户输入,并从mysql数据库中查找和选择歌曲,然后它会以新线程的方式运行音乐文件和它的音乐类,并传递歌曲名称。音乐文件/类会设置vlc媒体播放器(python-vlc),然后播放选中的歌曲。
self.newInstance = vlc.Instance()
self.player = self.newInstance.media_player_new()
然后它会返回到主文件,主文件会等待另一个用户输入,也就是“停止音乐”。这时会运行音乐文件/类中的music_stop方法。
self.player.stop()
问题是,这个方法没有效果。音乐还是在播放。我觉得可能是因为当它再次运行音乐类来执行music_stop方法时,它创建了一个新的实例和新的媒体播放器(这个播放器并没有播放任何东西),所以它试图停止的是这个新的播放器,而不是那个实际上正在播放歌曲的第一个实例。
希望这不是太让人困惑。如果你有问题,请问我,因为我很确定我还有什么没提到的。我会根据需要提供更多信息。
非常感谢大家!
相关问题:
- 暂无相关问题
1 个回答
0
我在发完这个问题后,几分钟就解决了这个问题……而在此之前我纠结了整整4天。解决办法就是把文件做成没有类,也就是不使用面向对象编程。现在它可以正常工作了。