欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)輕松切割MP3文件

 更新時間:2023年06月04日 08:44:40   作者:winfredzhang  
有時我們需要將大型MP3文件切割成較小的部分以便上傳或發(fā)送,所以本文為大家整理了可以輕松切割MP3文件的Python腳本,希望對大家有所幫助

應(yīng)用場景

1.需要將大型MP3文件切割成較小的部分以便上傳或發(fā)送。

2.需要從MP3文件中提取特定的音頻片段,以便用于其他目的。

3.需要快速制作鈴聲或音樂片段,以用于手機等設(shè)備。

源代碼

import subprocess
import wx
 
class MyFrame(wx.Frame):
    def __init__(self, parent, title):
        super(MyFrame, self).__init__(parent, title=title, size=(400, 600))
        panel = wx.Panel(self)
 
        vbox = wx.BoxSizer(wx.VERTICAL)
 
        hbox1 = wx.BoxSizer(wx.HORIZONTAL)
        start_label = wx.StaticText(panel, label='開始時間(秒):')
        hbox1.Add(start_label, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5)
        self.start_input = wx.TextCtrl(panel)
        hbox1.Add(self.start_input, flag=wx.ALL, border=5)
        vbox.Add(hbox1, flag=wx.EXPAND | wx.ALL, border=10)
 
        hbox2 = wx.BoxSizer(wx.HORIZONTAL)
        end_label = wx.StaticText(panel, label='結(jié)束時間(秒):')
        hbox2.Add(end_label, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5)
        self.end_input = wx.TextCtrl(panel)
        hbox2.Add(self.end_input, flag=wx.ALL, border=5)
        vbox.Add(hbox2, flag=wx.EXPAND | wx.ALL, border=10)
 
        hbox3 = wx.BoxSizer(wx.HORIZONTAL)
        btn_browse = wx.Button(panel, label='選擇文件', size=(100, 30))
        btn_browse.Bind(wx.EVT_BUTTON, self.on_browse)
        hbox3.Add(btn_browse, flag=wx.ALL, border=5)
        vbox.Add(hbox3, flag=wx.ALIGN_CENTER | wx.ALL, border=10)
 
        hbox4 = wx.BoxSizer(wx.HORIZONTAL)
        name_label = wx.StaticText(panel, label='歌名:')
        hbox4.Add(name_label, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5)
        self.name_input = wx.TextCtrl(panel)
        hbox4.Add(self.name_input, flag=wx.ALL, border=5)
        vbox.Add(hbox4, flag=wx.EXPAND | wx.ALL, border=10)
 
        hbox5 = wx.BoxSizer(wx.HORIZONTAL)
        btn_cut = wx.Button(panel, label='切割', size=(100, 30))
        btn_cut.Bind(wx.EVT_BUTTON, self.on_cut)
        hbox5.Add(btn_cut, flag=wx.ALL, border=5)
        vbox.Add(hbox5, flag=wx.ALIGN_CENTER | wx.ALL, border=10)
 
        panel.SetSizer(vbox)
        self.Show()
 
    def on_browse(self, event):
        dlg = wx.FileDialog(self, "選擇MP3文件", wildcard="MP3文件 (*.mp3)|*.mp3", style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
        if dlg.ShowModal() == wx.ID_OK:
            selected_file = dlg.GetPath()
            self.input_file = selected_file
        dlg.Destroy()
 
    def on_cut(self, event):
        start_time = self.start_input.GetValue()
        end_time = self.end_input.GetValue()
        name = self.name_input.GetValue()
 
        if not start_time or not end_time or not name or not hasattr(self, 'input_file'):
            wx.MessageBox('請輸入有效的開始時間、結(jié)束時間、歌名,并選擇要切割的MP3文件!', '錯誤', wx.OK | wx.ICON_ERROR)
            return
        output_file = f'{name}.mp3'
 
        # 使用FFmpeg切割音頻文件
        cmd = f'D://ffmpeg//bin//ffmpeg -i {self.input_file} -ss {start_time} -to {end_time} -c copy {output_file}'
        print(cmd)
        try:
            subprocess.call(cmd, shell=True)
            wx.MessageBox('切割成功!', '提示', wx.OK | wx.ICON_INFORMATION)
        except subprocess.CalledProcessError:
            wx.MessageBox('切割失敗,請檢查輸入的時間是否正確!', '錯誤', wx.OK | wx.ICON_ERROR)
 
app = wx.App()
MyFrame(None, title='MP3切割工具')
app.MainLoop()
 

源代碼解釋

這個工具的核心邏輯是使用FFmpeg庫進行音頻處理,以及使用wxPython庫構(gòu)建GUI。具體來說,F(xiàn)Fmpeg庫提供了強大的音頻處理功能,可以輕松地從音頻文件中提取、剪輯或轉(zhuǎn)碼音頻,而wxPython庫則提供了易于使用的GUI元素和布局管理器,幫助用戶創(chuàng)建美觀和易于使用的GUI。

需要注意的是,這個小工具使用了FFmpeg庫,因此在使用之前需要確保已經(jīng)安裝了FFmpeg庫,并且已經(jīng)將其添加到系統(tǒng)的環(huán)境變量中。同時,這個小工具也只支持切割MP3文件,如果需要處理其他類型的音頻文件,則需要進行相應(yīng)的修改。

效果如下

用戶可以按照以下步驟使用這個小工具:

運行代碼并打開GUI界面。

通過點擊"選擇文件"按鈕選擇要切割的MP3文件。

輸入起始時間和結(jié)束時間,以及要輸出文件的名稱。

點擊"切割"按鈕,等待程序完成處理。

在輸出文件夾中找到切割后的MP3文件。

到此這篇關(guān)于Python實現(xiàn)輕松切割MP3文件的文章就介紹到這了,更多相關(guān)Python切割MP3文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python接口自動化之request請求封裝源碼分析

    Python接口自動化之request請求封裝源碼分析

    這篇文章主要介紹了Python接口自動化之request請求封裝源碼分析,文章圍繞主題的相關(guān)資料展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06
  • Python實現(xiàn)打包成庫供別的模塊調(diào)用

    Python實現(xiàn)打包成庫供別的模塊調(diào)用

    這篇文章主要介紹了Python實現(xiàn)打包成庫供別的模塊調(diào)用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 淺談對python中if、elif、else的誤解

    淺談對python中if、elif、else的誤解

    這篇文章主要介紹了淺談對python中if、elif、else的誤解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python對稱的二叉樹多種思路實現(xiàn)方法

    Python對稱的二叉樹多種思路實現(xiàn)方法

    這篇文章主要介紹了Python對稱的二叉樹多種思路實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Python3 + Appium + 安卓模擬器實現(xiàn)APP自動化測試并生成測試報告

    Python3 + Appium + 安卓模擬器實現(xiàn)APP自動化測試并生成測試報告

    這篇文章主要介紹了Python3 + Appium + 安卓模擬器實現(xiàn)APP自動化測試并生成測試報告,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • OpenCV+python實現(xiàn)實時目標(biāo)檢測功能

    OpenCV+python實現(xiàn)實時目標(biāo)檢測功能

    這篇文章主要介紹了OpenCV+python實現(xiàn)實時目標(biāo)檢測功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Linux下通過python訪問MySQL、Oracle、SQL Server數(shù)據(jù)庫的方法

    Linux下通過python訪問MySQL、Oracle、SQL Server數(shù)據(jù)庫的方法

    這篇文章主要介紹了Linux下通過python訪問MySQL、Oracle、SQL Server數(shù)據(jù)庫的方法,需要的朋友可以參考下
    2016-04-04
  • python之os路徑被轉(zhuǎn)義的問題

    python之os路徑被轉(zhuǎn)義的問題

    這篇文章主要介紹了python之os路徑被轉(zhuǎn)義的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 使用python-pptx包批量修改ppt格式的實現(xiàn)

    使用python-pptx包批量修改ppt格式的實現(xiàn)

    今天小編就為大家分享一篇使用python-pptx包批量修改ppt格式的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python中用cantools和can工具包解析blf文件的方法

    python中用cantools和can工具包解析blf文件的方法

    這篇文章主要給大家介紹了關(guān)于python中用cantools和can工具包解析blf文件的相關(guān)資料,blf數(shù)據(jù)不像mf4那樣自帶信號數(shù)據(jù)庫,因為它是記日志用的,一般情況下要盡可能的小,需要的朋友可以參考下
    2023-09-09

最新評論