Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

audio don't work on android #644

Closed
Krozark opened this issue Aug 18, 2021 · 5 comments
Closed

audio don't work on android #644

Krozark opened this issue Aug 18, 2021 · 5 comments

Comments

@Krozark
Copy link

Krozark commented Aug 18, 2021

I'm using kivy and p4a both on develop branch

On android :

Code :

from plyer import audio
audio.start()

Error

08-19 00:58:09.046 11201 11231 I python  :    File "........./.buildozer/android/platform/build-armeabi-v7a/build/python-installs/KvTest/plyer/platforms/android/audio.py", line 31, in _start
08-19 00:58:09.046 11201 11231 I python  :    File "jnius/jnius_export_class.pxi", line 857, in jnius.jnius.JavaMethod.__call__
08-19 00:58:09.047 11201 11231 I python  :    File "jnius/jnius_export_class.pxi", line 954, in jnius.jnius.JavaMethod.call_method
08-19 00:58:09.047 11201 11231 I python  :    File "jnius/jnius_utils.pxi", line 91, in jnius.jnius.check_exception
08-19 00:58:09.048 11201 11231 I python  :  jnius.jnius.JavaException: JVM exception occurred: setAudioSource failed. java.lang.RuntimeException
08-19 00:58:09.048 11201 11231 I python  : Python for android ended.
@Krozark Krozark changed the title audi don't work on android audio don't work on android Aug 18, 2021
@Guhan-SenSam
Copy link
Contributor

You need to give proper permissions in order for the function call to work. In your buildozer.spec add RECORD_AUDIO to the permissions parameter

@Watha2
Copy link

Watha2 commented Jan 21, 2022

Hello, I'm new in Python and tried the example of audio code in this github, but it does not work.
Have you solved this yet? because when I checked the buildozer.spec already had RECORD_AUDIO in it.

File "c:/Users/thosiba/Downloads/plyer-master/plyer-master/examples/audio/main.py", line 102, in
AudioApp().run()
File "C:\Users\thosiba\Anaconda3\envs\Kivymd\lib\site-packages\kivy\app.py", line 950, in run
runTouchApp()
File "C:\Users\thosiba\Anaconda3\envs\Kivymd\lib\site-packages\kivy\base.py", line 582, in runTouchApp
EventLoop.mainloop()
File "C:\Users\thosiba\Anaconda3\envs\Kivymd\lib\site-packages\kivy\base.py", line 347, in mainloop
self.idle()
File "C:\Users\thosiba\Anaconda3\envs\Kivymd\lib\site-packages\kivy\base.py", line 391, in idle
self.dispatch_input()
File "C:\Users\thosiba\Anaconda3\envs\Kivymd\lib\site-packages\kivy\base.py", line 342, in dispatch_input
post_dispatch_input(*pop(0))
File "C:\Users\thosiba\Anaconda3\envs\Kivymd\lib\site-packages\kivy\base.py", line 308, in post_dispatch_input
wid.dispatch('on_touch_up', me)
File "kivy_event.pyx", line 709, in kivy._event.EventDispatcher.dispatch
File "C:\Users\thosiba\Anaconda3\envs\Kivymd\lib\site-packages\kivy\uix\behaviors\button.py", line 179, in on_touch_up
self.dispatch('on_release')
File "kivy_event.pyx", line 705, in kivy._event.EventDispatcher.dispatch
File "kivy_event.pyx", line 1248, in kivy._event.EventObservers.dispatch
File "kivy_event.pyx", line 1132, in kivy._event.EventObservers._dispatch
File "C:\Users\thosiba\Anaconda3\envs\Kivymd\lib\site-packages\kivy\lang\builder.py", line 57, in custom_callback
exec(kvlang.co_value, idmap)
File "", line 22, in
File "c:/Users/thosiba/Downloads/plyer-master/plyer-master/examples/audio/main.py", line 50, in start_recording
self.audio.start()
File "C:\Users\thosiba\Anaconda3\envs\Kivymd\lib\site-packages\plyer\facades\audio.py", line 65, in start
self._start()
File "C:\Users\thosiba\Anaconda3\envs\Kivymd\lib\site-packages\plyer\platforms\win\audio.py", line 329, in _start
open_params = send_command(
File "C:\Users\thosiba\Anaconda3\envs\Kivymd\lib\site-packages\plyer\platforms\win\audio.py", line 127, in send_command
error_code = send_command_w(
OSError: exception: access violation reading 0xFFFFFFFFFFFFFFFF
PS C:\Users\thosiba>

@Krozark
Copy link
Author

Krozark commented Jan 21, 2022

you need to ask the permition at runtime + compilation (in .spec)

@Watha2
Copy link

Watha2 commented Jan 24, 2022

Permission has already exists in .spec
I'm sorry, since I'm a novice in Python, if you don't mind, could you tell me how to ask permission at runtime?
How did you write the Python code for it?

Thank you

@Krozark
Copy link
Author

Krozark commented Jan 26, 2022

in you .spec:

# (list) Permissions
android.permissions = RECORD_AUDIO

in your main.py file

if __name__ == "__main__":
 # ... some code
  if platform == "android":
      from android.permissions import request_permissions, Permission
      request_permissions([
          Permission.RECORD_AUDIO,
         # .... other permission
      ])
  # ... other code

@Krozark Krozark closed this as completed Jan 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants