Kivy中的音频录制

2 投票
2 回答
5644 浏览
提问于 2025-04-18 03:15

在Kivy中可以录音吗?

我从文档中了解到,Kivy可以播放音频,但我们能不能录音然后再播放呢?这个功能在所有平台上都能用吗?比如说,我们可以在Windows或Ubuntu上开发,然后在Android上运行这个应用吗?

如果不行,那有没有其他的解决办法呢?

2 个回答

1

我找不到其他方法,只能用特定平台的方法。最后我在安卓上用了这个变种:

from jnius import autoclass
from time import sleep

if platform() == 'android':
    # get the needed Java classes
    MediaRecorder = autoclass('android.media.MediaRecorder')
    AudioSource = autoclass('android.media.MediaRecorder$AudioSource')
    OutputFormat = autoclass('android.media.MediaRecorder$OutputFormat')
    AudioEncoder = autoclass('android.media.MediaRecorder$AudioEncoder')

    # create out recorder
    mRecorder = MediaRecorder()
    mRecorder.setAudioSource(AudioSource.MIC)
    mRecorder.setOutputFormat(OutputFormat.MPEG_4)
    mRecorder.setOutputFile('/sdcard/test_recording.mp4')
    mRecorder.setAudioEncoder(AudioEncoder.AMR_NB)
    mRecorder.prepare()

    # record 5 seconds
    mRecorder.start()
    sleep(5)
    mRecorder.stop()
    mRecorder.release()
1

你可以试试这个Kivy的使用方法。

https://github.com/kivy/audiostream

这是Kivy官方提供的解决方案,应该能帮你解决问题。

撰写回答