热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用python写自己的linux音乐播放器

用python写自己的linux音乐播放器--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
  用Linux学习和工作一年多了,已经完全习惯它的操作方式。可是我还是不得不说,在操作方便和易用性上面,它还是和windows有一定差 距。就拿播放音乐来说,用mplayer或gmplayer,播放一首音乐或一张专辑我都需要点很多按钮,做很多操作,还不能在播放列表中随意切换,不能 随意把一首歌加到播放列表的某个位置,不能随意排列播放列表。这些都和微软的wmp有很大差距。

  所以一直以来就想重新写一个图形化工具把mplayer封装起来,加入一些wmp的功能,加入媒体库和播放列表。尤其这段时间了解了Python,这种想法更强烈了。所以前段时间下决心用简单的Python-gtk 做UI,用PySQLite做媒体库的后台数据库。

  自己写这样的工具之前我还是先到网上搜索,看看有没有类似的开源工具,免得做重复工作。在mplayer网站上发现了好多第三方开发的 frontend。其中,pygme、pymp和mpxtended是用PyGTK开发的,基本和我的想法一致。但它们都处于未完善的状态,pymp的网 站我一直上不去,不知道怎么样,mpxtended在我这也不好用,放一首歌的时候不知怎么界面就卡死了,而且有些按钮也是没有动作的。唯一做得很不错的 是pygme,在播放音乐和列表方面比gmplayer方便得多了,而且界面还比较简洁。

  但是它的很多功能不完善,尤其是媒体库方面。而且开发者自2005年9月就停止更新了,致使sourceforge上的0.0.6版还是个不稳定的版本,存在很多bug和问题。

  pygme官方网站

  



  我要写的东西,一是完善它的功能,参照windows media player,在这个界面的左边加上一个树形列表,可以按艺术家分类浏览,按唱片集浏览等,二是试图让它满足不同人和不同linux发行版的需要,因为我见过的linux播放器都要么依赖这个库,要么依赖那个库,要么基于mplayer,要么基于gstreamer,不但安装有麻烦,而且播放的时候也有各种各样的问题,比如原本我的机器上装了mplayer,可装了个界面友好的播放器偏偏基于gstreamer,而我的gstreamer又放不了wma、real和flv。所以我希望我的播放器可以很容易地被hack和扩展。
推荐阅读
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • [oracle@oracle~]$impxxxx/userfile=/usr/local/src/666.dmpfull=ybuffer=40960000Import: ... [详细]
  • PostgresX2 MPP部署试验
    2019独角兽企业重金招聘Python工程师标准MPP结构:129GTM节点,130coordinator、gtm_proxy、datanode& ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • DeaDBeeF(音频播放器)v1.8.0官方PC版
      DeaDBeeF音频播放器是一款来自国外的强大音乐播放软件,使用这款完全中文的DeaDBeeF音频播放器可以让你随时编辑本地的音乐文件标签和属性,根据不同的音乐文件配置不同的音色输出 ... [详细]
  • #-*-coding:utf-8-*-print(upython与开源QGis课题研究组)#print(汉字)##创建矢量数据文件#try:fromosgeoimporto ... [详细]
author-avatar
周茜闹心_325
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有