python语言写视频播放器-python_十几行代码实现简单播放器
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_十几行代码实现简单播放器相关推荐
- python开发视频播放器_python_十几行代码实现简单播放器
python20行代码实现简单播放器 播放器简介 播放器大家都并不陌生,我们听音乐,我们看视频都会用到.那么播放器实现的功能到底有哪些呢?一个播放器一般来讲都完成了如下步骤: 读取文件(包括音频文件和 ...
- python控制视频播放器的大小与位置_python_十几行代码实现简单播放器
python20行代码实现简单播放器 播放器简介 播放器大家都并不陌生,我们听音乐,我们看视频都会用到.那么播放器实现的功能到底有哪些呢?一个播放器一般来讲都完成了如下步骤: 读取文件(包括音频文件和 ...
- python抽样不同花色纸牌_Python 十几行代码实现你对一副扑克牌的所有幻想
1 importcollections2 from random importchoice, shuffle3 4 #构建了一个简单的 Card 类来表示一张纸牌,rank牌值,suit花色 5 Ca ...
- python用户输入算式并计算_Python 70行代码实现简单算式计算器
描述:用户输入一系列算式字符串,程序返回计算结果. 要求:不使用eval.exec函数. 实现思路:找到当前字符串优先级最高的表达式,在算术运算中,()优先级最高,则取出算式最底层的(),再进行加减乘 ...
- mapreduce编程实例python-使用Python语言写Hadoop MapReduce程序
原标题:使用Python语言写Hadoop MapReduce程序 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 在本教程中,我将描述如何使用Pytho ...
- python restful api_用Python语言写一个restful API
本文主要向大家介绍了用Python语言写一个restful API,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. """ package.modul ...
- 用python语言写了一套在线算命程序 ,精准度怎么样?可以来试试
用python语言写了一套在线付费算命程序,分网页版和小程序版 包括八字精批 合婚 八字解名 婚姻 终身运势五大项.算法精准,回头客较多.有相关网站流量资源的可以坐等收益.python anli网zh ...
- 在线算命程序 源码 用python语言写的 算命的网络化发展趋势 你怎么理解的?
欢迎使用Markdown编辑器写博客 用python语言写了一套在线付费算命程序,分网页版和小程序版 包括八字精批 合婚 八字解名 婚姻 终身运势五大项.另外有完善的分销系统,有相关流量资源的适合做. ...
- Python:利用python语言绘制多个子图经典案例、代码实现之详细攻略
Python:利用python语言绘制多个子图经典案例.代码实现之详细攻略 目录 利用python语言绘制多个子图代码实现.经典案例 1.绘制多个子图框架 多个子图绘制的经典案例 1.绘制多个直方图 ...
最新文章
- 详解ISA2006三种客户端
- linux i18n修改,中文版英文版体现
- 经验 | 清华大学计算机系教授~浅谈研究生学位论文选题方法
- python测试代码怎么写_如何使用python做单元测试?
- 高考语文再现奇葩作文题!大数据分析高考作文,看看哪年最坑爹?
- java判断日文_如何判断字符串中含有日文字符
- 期货日内交易小经验-开仓篇
- Android WIFI认证方式
- 短信格式(sms)以及编码总结
- 阿里代码规约:手动创建线程池,效果会更好哦
- Winform 俄罗斯方块儿练习
- Unity 3D中的内存管理与优化游戏运行性能的经验
- UML协作图(通信图)——软件需求分析与设计
- linux 安全模块开发基础知识
- JSP类计算机专业毕业设计题目课题选题
- java并发-JUC
- Keepalived常用配置及脚本
- 我测得嗷嗷完美的一个局
- 2018年通信工程师交换技术考试成绩查询
- 【选词填空-分析上下文对应关系】
热门文章
- SPA美女的50个细节
- Vue路由跳转但显示空白页面
- HTML字体的大小粗细
- Flutter Stack Align Positioned
- FLUKE DSX2-5000CH与DSX2-8000 CH如何测试CAT7类和CAT7A类的网线?
- 你真的了解HR问你的问题么?
- 04 【ArcGIS JS API + eCharts系列】实现二、三维网络路径图的绘制
- linux openmpi 位置,ubuntu下安装openMPI
- 升级啦 经纬恒润新一代V2X车路协同系统在港口部署应用
- Git 报错:Connection closed by remote host. fatal: Could not read from remote repository.