首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python-vlc中播放音乐时改变音量?

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

Stack Overflow用户
提问于 2017-11-10 00:02:22
回答 1查看 1.2K关注 0票数 2

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

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2021-01-17 10:41:05

我想我有一个答案给你!请注意,这段代码是我正在进行的一个更大项目的一部分。这段代码的某些部分不会按原样格式化。

代码语言:javascript
复制
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秒改变一次音量(我在其中放入了睡眠,试图降低cpu的使用率)。因此,每隔十分之一秒,就会运行一条命令,将音量更改为任意大小。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47206375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档