No.649
オレメモ
PythonでVLCを使った音楽再生方法を再整理。
Windows11x64
Python3.7
VLC media player ver.3.0.18
pipでpython-vlcをインストール。
コマンドプロンプト(管理者権限にて)
> pip3 install python-vlc
pipとはPythonのライブラリを提供してくれるリポジトリのこと。先達に感謝。
pythonでvlcによる再生。
import vlc
if __name__ == '__main__':
p = vlc.MediaPlayer() #vlc.MediaPlayerのインスタンスを作成
p.set_mrl('sound.mp3') #インスタンスに音源ファイルを関連付け 相対パスも可能らしいがフルパス指定を推奨
p.play() #再生開始
これだけで音声ファイルが再生されます。
以下基本的なAPI。
p = vlc.MediaPlayer() #vlc.MediaPlayerのインスタンスを作成
p.set_mrl('<file_name>') #インスタンスに音源ファイルを関連付け 相対パスも可能らしいがフルパス指定を推奨 ファイルはVLC media player で扱える物なら何でも。
p.play() #再生開始 戻り値 0=正常再生/-1=再生出来ない ※ pauseされていれば再生再開
p.is_playing() #再生中か 戻り値 0=再生していない/1=再生中
p.pause() #再生中なら一時停止、一時停止中なら再生再開 戻り値無し
p.get_length() #音源の長さを取得 戻り値 秒数(msec.)
p.get_time() #音源の最初からの再生位置を取得 戻り値 秒数(msec.)
p.set_time(<msec.>) #再生再開位置を秒数(msec.)で指定 戻り値無し ※ 再生中やpause()中でないと指定出来ない
p.audio_set_volume(<パーセント>) #0=mute,100=0dB(パーセント指示だと思っていいみたい。100以上も指定可能。)戻り値 0=再生中に設定成功/-1=設定はしたが再生はしていない
p.stop() #停止 戻り値無し 次回のplay()では最初から始まる
※ 最後まで再生しきっても、stop()をしないと次回のplay()はスタートしない。再生終了で必ずstop()を実行する。
※ 停止中は次の再生開始秒数を指定出来ないので、特定の秒数(msec.)から再生する場合は、play()に続いてset_time(<msec.>)を実行する。ただし、pause()中は指定可能。
p.play()
p.set_time(<msec.>)
複数の音源ファイルをプレイリストとして扱ってくれるクラスもあるのですが、LTCを作るには少し不便がありそうなため、1曲単位で扱うことにしています。
vlc.MediaPlayer()のリストを作成する。
p = ( [vlc.MediaPlayer(), vlc.MediaPlayer(), vlc.MediaPlayer()] )
# p[0]、p[1]、p[2] などと使える。
普通にオフジェクトのリストとして扱える。
これだけはメモ。
リストのオブジェクトを追加する。
p.append( vlc.MediaPlayer() )
# 上記に続いた場合は p[3] が追加される
再生操作のレスポンスはとても良く、タイムラグはほとんど感じない。
ただ、プレイリスト分のインスタンスを設定するにはメモリに注意かもしれない。
参考
python-vlcのドキュメント
ここの「vlc.MediaPlayer」を参照。
#Python
PythonでVLCを使った音楽再生方法を再整理。
Windows11x64
Python3.7
VLC media player ver.3.0.18
pipでpython-vlcをインストール。
コマンドプロンプト(管理者権限にて)
> pip3 install python-vlc
pipとはPythonのライブラリを提供してくれるリポジトリのこと。先達に感謝。
pythonでvlcによる再生。
import vlc
if __name__ == '__main__':
p = vlc.MediaPlayer() #vlc.MediaPlayerのインスタンスを作成
p.set_mrl('sound.mp3') #インスタンスに音源ファイルを関連付け 相対パスも可能らしいがフルパス指定を推奨
p.play() #再生開始
これだけで音声ファイルが再生されます。
以下基本的なAPI。
p = vlc.MediaPlayer() #vlc.MediaPlayerのインスタンスを作成
p.set_mrl('<file_name>') #インスタンスに音源ファイルを関連付け 相対パスも可能らしいがフルパス指定を推奨 ファイルはVLC media player で扱える物なら何でも。
p.play() #再生開始 戻り値 0=正常再生/-1=再生出来ない ※ pauseされていれば再生再開
p.is_playing() #再生中か 戻り値 0=再生していない/1=再生中
p.pause() #再生中なら一時停止、一時停止中なら再生再開 戻り値無し
p.get_length() #音源の長さを取得 戻り値 秒数(msec.)
p.get_time() #音源の最初からの再生位置を取得 戻り値 秒数(msec.)
p.set_time(<msec.>) #再生再開位置を秒数(msec.)で指定 戻り値無し ※ 再生中やpause()中でないと指定出来ない
p.audio_set_volume(<パーセント>) #0=mute,100=0dB(パーセント指示だと思っていいみたい。100以上も指定可能。)戻り値 0=再生中に設定成功/-1=設定はしたが再生はしていない
p.stop() #停止 戻り値無し 次回のplay()では最初から始まる
※ 最後まで再生しきっても、stop()をしないと次回のplay()はスタートしない。再生終了で必ずstop()を実行する。
※ 停止中は次の再生開始秒数を指定出来ないので、特定の秒数(msec.)から再生する場合は、play()に続いてset_time(<msec.>)を実行する。ただし、pause()中は指定可能。
p.play()
p.set_time(<msec.>)
複数の音源ファイルをプレイリストとして扱ってくれるクラスもあるのですが、LTCを作るには少し不便がありそうなため、1曲単位で扱うことにしています。
vlc.MediaPlayer()のリストを作成する。
p = ( [vlc.MediaPlayer(), vlc.MediaPlayer(), vlc.MediaPlayer()] )
# p[0]、p[1]、p[2] などと使える。
普通にオフジェクトのリストとして扱える。
これだけはメモ。
リストのオブジェクトを追加する。
p.append( vlc.MediaPlayer() )
# 上記に続いた場合は p[3] が追加される
再生操作のレスポンスはとても良く、タイムラグはほとんど感じない。
ただ、プレイリスト分のインスタンスを設定するにはメモリに注意かもしれない。
参考
python-vlcのドキュメント
ここの「vlc.MediaPlayer」を参照。
#Python