Я пытаюсь заставить микрофон работать на Android, я использую в основном kivy и buildozer.
У меня работает аудиовыход с помощью audiostream, однако этот модуль настолько устарел, что не будет работать больше, если использовать ввод «запись». Проблема с GITHub. Ну, мне не удалось заставить запись работать на ПК, потому что он говорит «не поддерживается», как только я использую функции записи, в документах упоминаются только мобильные устройства, так что это нормально. на этих платформах его в любом случае можно заменить на pyaudio.
Я пытался найти другие варианты, которые я могу использовать, поэтому наткнулся на pyjnius и MediaRecorder, я очень новичок в Java,( и пытаюсь изучить банкомат Python, так что там тоже новичок), поэтому мне не удалось заставить его работать.
Проблема в том, что мне нужно записать все данные микрофона в байты, с pyaudio это легко сделать, и это работает. причина, почему я здесь, это Android, где pyaudio не работает (по крайней мере, я еще не пробовал скомпилировать библиотеки для Android, я знаю, что это возможно, но много работы..)
Вот код что мне нужно попробовать, чтобы это заработало:
Код: Выделить всё
MediaRecorder = autoclass('android.media.MediaRecorder')
AudioSource = autoclass('android.media.MediaRecorder$AudioSource')
OutputFormat = autoclass('android.media.MediaRecorder$OutputFormat')
AudioEncoder = autoclass('android.media.MediaRecorder$AudioEncoder')
FileOutputStream = autoclass('java.io.FileOutputStream')
gaindata = io.BytesIO()
mRecorder = MediaRecorder()
mRecorder.setAudioSource(AudioSource.MIC)
mRecorder.setOutputFormat(OutputFormat.THREE_GPP)
mRecorder.setOutputFile(gaindata.getBytes())
mRecorder.setAudioEncoder(AudioEncoder.AMR_NB)
mRecorder.prepare()
Если есть другой вариант, было бы неплохо, мне нужны данные bytesIO с микрофона (предпочитаю 8000, моно, raw wav без заголовка ИЛИ GSM6.10), и я конвертирую их с помощью звуковой файл (да, я скомпилировал libsndfile.so для активации) в gsm6.10 и поместил его в сокет, это приложение VoIP.
Подробнее здесь: https://stackoverflow.com/questions/598 ... ython-kivy
Мобильная версия