You've already forked MicroPythonOS
mirror of
https://github.com/m5stack/MicroPythonOS.git
synced 2026-05-20 11:51:27 -07:00
Fix volume setting
This commit is contained in:
@@ -30,3 +30,6 @@ __pycache__/
|
||||
|
||||
# these get created:
|
||||
c_mpos/c_mpos
|
||||
|
||||
# build files
|
||||
*.bin
|
||||
|
||||
@@ -62,19 +62,21 @@ class FullscreenPlayer(Activity):
|
||||
def onCreate(self):
|
||||
self._filename = self.getIntent().extras.get("filename")
|
||||
qr_screen = lv.obj()
|
||||
self._slider_label=lv.label(qr_screen)
|
||||
self._slider_label = lv.label(qr_screen)
|
||||
self._slider_label.set_text(f"Volume: {AudioManager.get_volume()}%")
|
||||
self._slider_label.align(lv.ALIGN.TOP_MID,0,lv.pct(4))
|
||||
self._slider=lv.slider(qr_screen)
|
||||
self._slider.set_range(0,16)
|
||||
self._slider.set_value(int(AudioManager.get_volume()/6.25), False)
|
||||
self._slider_label.align(lv.ALIGN.TOP_MID, 0, lv.pct(4))
|
||||
self._slider = lv.slider(qr_screen)
|
||||
self._slider.set_range(0, 100)
|
||||
self._slider.set_value(int(AudioManager.get_volume()), False)
|
||||
self._slider.set_width(lv.pct(90))
|
||||
self._slider.align_to(self._slider_label,lv.ALIGN.OUT_BOTTOM_MID,0,10)
|
||||
self._slider.align_to(self._slider_label, lv.ALIGN.OUT_BOTTOM_MID, 0, 10)
|
||||
|
||||
def volume_slider_changed(e):
|
||||
volume_int = self._slider.get_value()*6.25
|
||||
volume_int = int(self._slider.get_value())
|
||||
self._slider_label.set_text(f"Volume: {volume_int}%")
|
||||
AudioManager.set_volume(volume_int)
|
||||
self._slider.add_event_cb(volume_slider_changed,lv.EVENT.VALUE_CHANGED,None)
|
||||
|
||||
self._slider.add_event_cb(volume_slider_changed, lv.EVENT.VALUE_CHANGED, None)
|
||||
self._filename_label = lv.label(qr_screen)
|
||||
self._filename_label.align(lv.ALIGN.CENTER,0,0)
|
||||
self._filename_label.set_text(self._filename)
|
||||
|
||||
@@ -187,7 +187,23 @@ class AudioManager:
|
||||
|
||||
@classmethod
|
||||
def set_volume(cls, volume):
|
||||
cls.get()._volume = max(0, min(100, volume))
|
||||
manager = cls.get()
|
||||
try:
|
||||
volume_int = int(round(volume))
|
||||
except (TypeError, ValueError):
|
||||
return manager._volume
|
||||
volume_int = max(0, min(100, volume_int))
|
||||
manager._volume = volume_int
|
||||
|
||||
for session in list(manager._active_sessions):
|
||||
stream = getattr(session, "_stream", None)
|
||||
if stream and hasattr(stream, "set_volume"):
|
||||
try:
|
||||
stream.set_volume(volume_int)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
return volume_int
|
||||
|
||||
@classmethod
|
||||
def get_volume(cls):
|
||||
|
||||
@@ -108,7 +108,6 @@ from mpos import AudioManager
|
||||
# Desktop builds have no real audio hardware, but we simulate microphone
|
||||
# recording with a 440Hz sine wave for testing WAV file generation
|
||||
# The i2s_pins dict with 'sd_in' enables microphone simulation
|
||||
AudioManager()
|
||||
|
||||
output_i2s_pins = {
|
||||
'sck': 0, # Simulated - not used on desktop
|
||||
|
||||
@@ -48,7 +48,6 @@ MPU6886_I2C_FREQ = const(400000)
|
||||
|
||||
print("m5stack_fire.py init buzzer")
|
||||
buzzer = PWM(Pin(BUZZER_PIN, Pin.OUT, value=1), duty=5)
|
||||
AudioManager()
|
||||
AudioManager.add(AudioManager.Output("buzzer", "buzzer", buzzer_pin=BUZZER_PIN))
|
||||
AudioManager.set_volume(40)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user