跳至正文
View Categories

< 1 min read

主要内容 #

  • 列表记忆功能

1. 列表记忆功能 #

像qq音乐,网易云音乐在内的大部分音乐播放器都有列表记忆功能。
即上一次播放的列表音乐在下一次打开app时会直接显示。
但是我们的播放器在每次打开播放器时都需要重新打开文件夹操作,这样的程序用户体验不好。
本次课程的内容就是完成列表记忆功能,程序如下:


    def load_setting(self):
        """
        导入setting
        """
        if os.path.isfile(self.setting_filename):
            config = configparser.ConfigParser()
            config.read(self.setting_filename)
            self.cur_path = config.get('MusicPlayer', 'PATH')
            self.show_music_list() # 导入配置后,直接展示音乐列表

    def update_setting(self):
        """
        更新setting
        """
        config = configparser.ConfigParser()
        config.read(self.setting_filename)
        if not os.path.isfile(self.setting_filename):
            config.add_section('MusicPlayer')
        config.set('MusicPlayer', 'PATH', self.cur_path)
        config.write(open(self.setting_filename, 'w'))

以上程序完成了通过配置文件的方式来保存上次打开的文件夹,
然后每次启动程序时会直接读取文件夹来实现音乐列表记忆功能。

以上程序仅仅是实现在功能,还需要在程序中进行有效配置。
程序如下:


    # 在self.init()中找到如下这部分代码
    self.is_switching = False
    self.is_pause = True  # 是否暂停

    # 并且在下一行增加如下这段代码
    self.setting_filename = 'setting.ini'  # 配置文件名称


    # 在self.init()中找到如下这部分代码
    self.qList.itemDoubleClicked.connect(self.double_clicked)

    # 并且在下一行增加如下这段代码
    self.load_setting() # 导入setting

上述程序完成了每次都需要找配置文件,然后根据配置文件来读取文件夹和音乐列表的功能。

最后,还需要编写更新配置文件的功能,
即每次展示音乐列表的时候都去更新配置文件,做到每次都把最新的音乐文件夹保存在配置文件中。
程序如下:


    # 在self.show_music_list()中找到如下这部分代码
    self.qlist.clear()

    # 并且在下一行增加如下这段代码
	self.update_setting()

将以上所有程序加入到MusicPlayer类中,并且在self.init()函数中做好相应地修改。
再次运行程序,查看具体效果。

至此,即完成了音乐播放器的所有功能模块。

2. 小结 #

  • 本章完成了音乐播放器的列表记忆功能
  • 简易音乐播放器的所有功能模块都已完成

习题 #

  • 自行添加新的功能
  • 对该模块代码进行打包操作