python20行代码实现简单播放器

播放器简介

播放器大家都并不陌生,我们听音乐,我们看视频都会用到。那么播放器实现的功能到底有哪些呢?一个播放器一般来讲都完成了如下步骤:

读取文件(包括音频文件和视频文件)

判断文件类型(视频和音频的格式前差万别)

根据不同的文件类型来进行解码(流媒体的文件体积太大,一般都经过了压缩,而压缩的标准和格式又五花八门)

保证音画同步(画面和视频不同步是不是很不爽)

解码后的图像渲染到显示设备(如显示器,不同的显卡和硬件的驱动也前差万别)

解码后的图像渲染到声音设备(如声卡)

有没有感觉好复杂。没错,一个音视频播放的背后就是这么复杂,不过对于我们使用者来说使用时简单的。这也是我们常追求的一种产品哲学,把复杂留给后台,把简单呈现给用户。

2.使用python简单实现播放器"

接触到python之后,发现其强大之处,结合自己的技术方向,简单实现了一个播放器,可以说,这样的组合把留给程序员的复杂也进一步的减少了呢。

当然如果你要是想完全懂这个程序,可能需要有一定的前提:

你有简单的python基础,不需要精通,快速入门即可

你有简单的图形图像的基础,看过我的博客的你,基本都具备这个能力(哈哈)

再说一下这个程序所需要的开发环境:

python的开发环境,最少3.6以上,IDE你用什么都可以,vscode, pycharm等等

你需要安装pyglet的python库:安装命令很简单喽 pip install pyglet

同时你需要安装AVbin动态库,介个是pyglet所使用的多媒体解码库,动动你的手指,百度或google,然后安装一下

你需要安装PyInstaller库:安装命令同样很简单pip install PyInstaller

最好找一个播放器的图标:mylayer.ico

准备一个测试的视频

好了,环境准备好以后,接下来就是传说中的十几行代码:

import pyglet

window = pyglet.window.Window(resizable=True)

@window.event

def on_draw():

player.get_texture().blit(0, 0)

if __name__ == "__main__":

player = pyglet.media.Player()

source = pyglet.media.load("F:\FFOutput\parent.vob")

player.queue(source)

player.play

pyglet.app.run()

关于这段代码的说明:

文件的路径一定要写对哦,就是你的测试视频所在的路径

这是一个简单的版本,所以只有播放,而没有控制,如暂停,播放等选项

别忘了写pyglet.app.run()这是程序事件循环的起点哈

3. 生成exe文件

pyinstaller player.py -F --icon=player.ico

注意:

这里的player.py就是我们所创建的python文件的名称,你可以起更酷炫的

这里的player.ico就是我们生成的exe文件的图标

这里的pyinstaller就是我们环境准备里的PyInstaller包的可执行程序,用于打包python程序,有没有很强大

十几行代码,实现一个简单播放器,有没有很简单。可以尝试一下看看效果哦

python语言写视频播放器-python_十几行代码实现简单播放器相关推荐

  1. python开发视频播放器_python_十几行代码实现简单播放器

    python20行代码实现简单播放器 播放器简介 播放器大家都并不陌生,我们听音乐,我们看视频都会用到.那么播放器实现的功能到底有哪些呢?一个播放器一般来讲都完成了如下步骤: 读取文件(包括音频文件和 ...

  2. python控制视频播放器的大小与位置_python_十几行代码实现简单播放器

    python20行代码实现简单播放器 播放器简介 播放器大家都并不陌生,我们听音乐,我们看视频都会用到.那么播放器实现的功能到底有哪些呢?一个播放器一般来讲都完成了如下步骤: 读取文件(包括音频文件和 ...

  3. python抽样不同花色纸牌_Python 十几行代码实现你对一副扑克牌的所有幻想

    1 importcollections2 from random importchoice, shuffle3 4 #构建了一个简单的 Card 类来表示一张纸牌,rank牌值,suit花色 5 Ca ...

  4. python用户输入算式并计算_Python 70行代码实现简单算式计算器

    描述:用户输入一系列算式字符串,程序返回计算结果. 要求:不使用eval.exec函数. 实现思路:找到当前字符串优先级最高的表达式,在算术运算中,()优先级最高,则取出算式最底层的(),再进行加减乘 ...

  5. mapreduce编程实例python-使用Python语言写Hadoop MapReduce程序

    原标题:使用Python语言写Hadoop MapReduce程序 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 在本教程中,我将描述如何使用Pytho ...

  6. python restful api_用Python语言写一个restful API

    本文主要向大家介绍了用Python语言写一个restful API,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. """ package.modul ...

  7. 用python语言写了一套在线算命程序 ,精准度怎么样?可以来试试

    用python语言写了一套在线付费算命程序,分网页版和小程序版 包括八字精批 合婚 八字解名 婚姻 终身运势五大项.算法精准,回头客较多.有相关网站流量资源的可以坐等收益.python anli网zh ...

  8. 在线算命程序 源码 用python语言写的 算命的网络化发展趋势 你怎么理解的?

    欢迎使用Markdown编辑器写博客 用python语言写了一套在线付费算命程序,分网页版和小程序版 包括八字精批 合婚 八字解名 婚姻 终身运势五大项.另外有完善的分销系统,有相关流量资源的适合做. ...

  9. Python:利用python语言绘制多个子图经典案例、代码实现之详细攻略

    Python:利用python语言绘制多个子图经典案例.代码实现之详细攻略 目录 利用python语言绘制多个子图代码实现.经典案例 1.绘制多个子图框架 多个子图绘制的经典案例 1.绘制多个直方图 ...

最新文章

  1. 详解ISA2006三种客户端
  2. linux i18n修改,中文版英文版体现
  3. 经验 | 清华大学计算机系教授~浅谈研究生学位论文选题方法
  4. python测试代码怎么写_如何使用python做单元测试?
  5. 高考语文再现奇葩作文题!大数据分析高考作文,看看哪年最坑爹?
  6. java判断日文_如何判断字符串中含有日文字符
  7. 期货日内交易小经验-开仓篇
  8. Android WIFI认证方式
  9. 短信格式(sms)以及编码总结
  10. 阿里代码规约:手动创建线程池,效果会更好哦
  11. Winform 俄罗斯方块儿练习
  12. Unity 3D中的内存管理与优化游戏运行性能的经验
  13. UML协作图(通信图)——软件需求分析与设计
  14. linux 安全模块开发基础知识
  15. JSP类计算机专业毕业设计题目课题选题
  16. java并发-JUC
  17. Keepalived常用配置及脚本
  18. 我测得嗷嗷完美的一个局
  19. 2018年通信工程师交换技术考试成绩查询
  20. 【选词填空-分析上下文对应关系】

热门文章

  1. SPA美女的50个细节
  2. Vue路由跳转但显示空白页面
  3. HTML字体的大小粗细
  4. Flutter Stack Align Positioned
  5. FLUKE DSX2-5000CH与DSX2-8000 CH如何测试CAT7类和CAT7A类的网线?
  6. 你真的了解HR问你的问题么?
  7. 04 【ArcGIS JS API + eCharts系列】实现二、三维网络路径图的绘制
  8. linux openmpi 位置,ubuntu下安装openMPI
  9. 升级啦 经纬恒润新一代V2X车路协同系统在港口部署应用
  10. Git 报错:Connection closed by remote host. fatal: Could not read from remote repository.