python - 如何在 python-vlc 中播放音乐时更改音量?

标签 python audio vlc volume

告诉我如何在播放过程中改变音量而不中断播放? 也许我需要使用额外的库? 我的代码示例:

import vlc
import time

url = 'http://prem1.rockradio.com:80/bluesrock?749334267be3790147565672'

#define VLC instance
instance = vlc.Instance('--input-repeat=-1', '--fullscreen')

#Define VLC player
player=instance.media_player_new()

#Define VLC media
media=instance.media_new(url)

#Set player media
player.set_media(media)

#Play the media
player.play()
player.audio_set_volume(50)

最佳答案

我想我已经给你答案了!请注意,此代码是我正在开发的一个更大项目的一部分。此代码的某些部分不会被格式化为按原样工作的位置。

import threading
import time
import vlc
from tkinter import *

root = Tk()
root.title("Playlist Player")
root.geometry("700x200")

volume = Scale(root, from_=0, to=100, orient=HORIZONTAL)
volume.set(100)
volume.place(x=150, y=20)
root.mainloop()

player = vlc.MediaPlayer()
media = vlc.Media(dir + playlist + "/" + song)
player.set_media(media)
player.audio_set_volume(100)
player.video_set_scale(0.6)
player.play()
play()

clip = MP3(dir + playlist + "/" + song)
clip_info = clip.info
time.sleep(int(clip_info.length))  # Wait until after the clip has finished

player.stop()

def play():
    volumethread = threading.Thread(target=refreshvolume, daemon=True)
    volumethread.start()

def refreshvolume():
    while True:
        changevolume(volume.get())
        time.sleep(0.1)

def changevolume(volume):
    player.audio_set_volume(volume)
    time.sleep(0.1)

所以我在这里所做的几乎是让一个线程无限循环一个命令,以每 0.1 秒更改一次音量(我将 sleep 放在其中,试图降低 cpu 使用率)。因此,每隔十分之一秒,就会运行一个命令,将音量更改为任何比例。

关于python - 如何在 python-vlc 中播放音乐时更改音量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47206375/

相关文章:

Python GPS 模块 : Reading latest GPS Data

Python仅解析文本文件的特定部分

html - 如何在网络浏览器中播放 MKV 视频?

ffmpeg 将 hls 转换为 rtsp 协议(protocol)

python - 用 Python 在屏幕上显示文本的简单方法?

python - 在 Python 中从字符串中删除元音的正确代码

java - 软件可以将数据转换为声音吗,麦克风是否可以收听该声音将其转换为相同数据

sockets - 捕获 UDP 流数据

java - 尝试播放 AudioClip 时出现 NullPointerException

iphone - 切换 View 时如何中断for循环?