如何从特定时间开始播放音频文件
How to play an audio file starting at a specific time
我想在特定持续时间播放音频文件,例如,使用 python 中的媒体播放器模块在 1:00 分钟或 500 毫秒开始播放。
import vlc
song = vlc.MediaPlayer('song.mp3')
song.play()
现在使用 song.play() 我可以播放文件,但只能从头开始播放,所以有什么方法可以在特定的持续时间开始播放吗?
使用set_time()
method of the MediaPlayer
对象:
import vlc
song = vlc.MediaPlayer('song.mp3')
song.play()
song.set_time(10000) # play at 10,000 ms (10 seconds)
还有 set_position()
可以处理 0.0 到 1.0 之间的值:
song.set_position(0.5) # half way through media file
给猫剥皮的方法有很多,除了公认的答案外,您还可以在 Media
实例上使用 --start-time
和 --stop-time
选项。
即
import vlc
import time
url = "file:///home/rolf/BBB.ogv"
playing = set([1,2,3,4])
instance=vlc.Instance()
player=instance.media_player_new()
media = instance.media_new(url)
media.add_option('start-time=600.00') # start at 600 seconds (10 minutes)
media.add_option('stop-time=605.00') # for 5 seconds
player.set_media(media)
player.play()
time.sleep(0.1) # wait briefly for it to start
while True:
state = player.get_state()
if state not in playing:
break
注:--run-time
也存在
在命令行上使用 vlc -H
,以获得丰富的选项。
Rolf 的回答是唯一对我有用的版本,在 Pi 的 Raspbian 上使用 python-vlc。深入研究 set_position 方法的 VLC API,您会发现 'This might not work depending on the underlying input format and protocol.' - 它不适合我。我发现对我有用的唯一搜索方法是使用 Media 实例的示例。
我想在特定持续时间播放音频文件,例如,使用 python 中的媒体播放器模块在 1:00 分钟或 500 毫秒开始播放。
import vlc
song = vlc.MediaPlayer('song.mp3')
song.play()
现在使用 song.play() 我可以播放文件,但只能从头开始播放,所以有什么方法可以在特定的持续时间开始播放吗?
使用set_time()
method of the MediaPlayer
对象:
import vlc
song = vlc.MediaPlayer('song.mp3')
song.play()
song.set_time(10000) # play at 10,000 ms (10 seconds)
还有 set_position()
可以处理 0.0 到 1.0 之间的值:
song.set_position(0.5) # half way through media file
给猫剥皮的方法有很多,除了公认的答案外,您还可以在 Media
实例上使用 --start-time
和 --stop-time
选项。
即
import vlc
import time
url = "file:///home/rolf/BBB.ogv"
playing = set([1,2,3,4])
instance=vlc.Instance()
player=instance.media_player_new()
media = instance.media_new(url)
media.add_option('start-time=600.00') # start at 600 seconds (10 minutes)
media.add_option('stop-time=605.00') # for 5 seconds
player.set_media(media)
player.play()
time.sleep(0.1) # wait briefly for it to start
while True:
state = player.get_state()
if state not in playing:
break
注:--run-time
也存在
在命令行上使用 vlc -H
,以获得丰富的选项。
Rolf 的回答是唯一对我有用的版本,在 Pi 的 Raspbian 上使用 python-vlc。深入研究 set_position 方法的 VLC API,您会发现 'This might not work depending on the underlying input format and protocol.' - 它不适合我。我发现对我有用的唯一搜索方法是使用 Media 实例的示例。