Code: Select all
init python:
def get_audio_duration():
duration = renpy.music.get_duration()
return convert_format(int(duration))
def get_audio_position():
music_pos = renpy.music.get_pos()
if music_pos:
return convert_format(int(music_pos))
return "0"
def convert_format(second):
minute = second // 60
second = second % 60
result = ""
if minute:
result = str(minute) + ":"
if second < 10:
result += '0'
elif second>9:
result +='0:'
else:
result +='0:0'
result += str(second)
return result
screen audio:
#timer 0.1 action [Hide('audio'), Show('audio')]
timer 0.1:
action [SetVariable('duration',get_audio_duration()),SetVariable('music_pos',get_audio_position())]
repeat True
vbox:
xpos 0.5
ypos 0.2
python:
duration = get_audio_duration()
music_pos = get_audio_position()
hbox:
spacing 20
text music_pos
text "/"
text duration
bar:
value AudioPositionValue("music", update_interval=0.1)
xalign 0.5
yalign 0.5
xsize 500
xmaximum 500
init python:
mr = MusicRoom(fadeout=1.0)
mr.add("audio/1.ogg", always_unlocked=True)
mr.add("audio/2.ogg", always_unlocked=True)
mr.add("audio/3.ogg", always_unlocked=True)
class PlayerButton:
def __init__(self, channel='music', icon_path='gui/', mr=mr):
self.channel = channel
self.icon_path = icon_path
self.mr = mr
def get_icon(self):
if not renpy.music.is_playing() and not renpy.music.get_pause():
return self.icon_path + "play_%s.png"
if renpy.music.get_pause(self.channel):
return self.icon_path + "play_%s.png"
return self.icon_path + "pause_%s.png"
def click(self):
if not renpy.music.is_playing() and not renpy.music.get_pause():
self.mr.play()
return
renpy.music.set_pause(not renpy.music.get_pause(self.channel),
channel=self.channel)
play_button = PlayerButton(mr=mr)
label start:
#play music "music/voice.ogg"
show screen music_room
call screen audio
pause
screen music_room:
#timer 1 action [Hide('music_room'), Show('music_room')]
timer 0.1:
action [SetVariable('duration',get_audio_duration()),SetVariable('music_pos',get_audio_position())]
repeat True
frame:
xpos 0.3
ypos 0.3
has vbox
textbutton "Track 1" action mr.Play("audio/1.ogg")
textbutton "Track 2" action mr.Play("audio/2.ogg")
textbutton "Track 3" action mr.Play("audio/3.ogg")
null height 20
textbutton "Next" action mr.Next()
textbutton "Previous" action mr.Previous()
null height 20
textbutton "Main Menu" action ShowMenu("main_menu")
python:
duration = str(int(renpy.music.get_duration()))
music_pos = renpy.music.get_pos()
if not music_pos:
music_pos = 0
music_pos = str(int(music_pos))
text duration
text music_pos
bar:
value AudioPositionValue(channel='music', update_interval=0.1)
xalign 0.5
yalign 0.5
xsize 500
xmaximum 500
fixed:
pos(0.5, 0.6)
hbox:
vbox:
text str(renpy.music.get_pause())
imagebutton:
auto play_button.get_icon()
focus_mask True
action Function(play_button.click)
on "replace" action mr.Stop()
on "replaced" action Play("music", "track1.ogg")