python_十幾行代碼實現簡單播放器

python20行代碼實現簡單播放器

  1. 播放器簡介
    播放器大家都並不陌生,我們聽音樂,我們看視頻都會用到。那麼播放器實現的功能到底有哪些呢?一個播放器一般來講都完成了如下步驟:

    • 讀取文件(包括音頻文件和視頻文件)
    • 判斷文件類型(視頻和音頻的格式前差萬別)
    • 根據不同的文件類型來進行解碼(流媒體的文件體積太大,一般都經過了壓縮,而壓縮的標準和格式又五花八門)
    • 保證音畫同步(畫面和視頻不同步是不是很不爽)
    • 解碼後的圖像渲染到顯示設備(如顯示器,不同的顯卡和硬件的驅動也前差萬別)
    • 解碼後的圖像渲染到聲音設備(如聲卡)

    有沒有感覺好複雜。沒錯,一個音視頻播放的背後就是這麼複雜,不過對於我們使用者來說使用時簡單的。這也是我們常追求的一種產品哲學,把複雜留給後臺,把簡單呈現給用戶。


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程序,有沒有很強大

十幾行代碼,實現一個簡單播放器,有沒有很簡單。可以嘗試一下看看效果哦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章