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程序,有没有很强大
十几行代码,实现一个简单播放器,有没有很简单。可以尝试一下看看效果哦
转载于:https://blog.51cto.com/7335580/2145914