I am running a python/kivy compiled app in Xcode, but it raises an error when I try to save some audio bytes to an audio file. I have done this successfully in my IDE, so I don't understand why it isn't working in Xcode.
Here's the concerned section of my code:
test = mic_callback() mic = get_input(callback=test.record_audio) mic.start() time.sleep(5) mic.stop() recorded_frames = audio.get_audio() sample_rate = 44100 wf = wave.open("audio.wav", "wb") # create an audio file object in 'write bytes' mode (as frames file stores audio in bytes) wf.setnchannels(2) # set the channels in the audio file wf.setsampwidth(2) # set the size of each sample in bytes (2 bytes in the case as each sample is 16 bits) wf.setframerate(sample_rate) # set the frame rate wf.writeframes(b"".join([])) Here's the error message:
[INFO ] [Base ] Leaving application in progress... Traceback (most recent call last): File "/Users/orlandoalexander/recycle-ios/YourApp/main.py", line 262, in <module> File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/app.py", line 950, in run runTouchApp() File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/base.py", line 582, in runTouchApp EventLoop.mainloop() File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/base.py", line 347, in mainloop self.idle() File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/base.py", line 391, in idle self.dispatch_input() File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/base.py", line 342, in dispatch_input post_dispatch_input(*pop(0)) File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/base.py", line 248, in post_dispatch_input listener.dispatch('on_motion', etype, me) File "kivy/_event.pyx", line 724, in kivy._event.EventDispatcher.dispatch File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/core/window/__init__.py", line 1412, in on_motion self.dispatch('on_touch_down', me) File "kivy/_event.pyx", line 724, in kivy._event.EventDispatcher.dispatch File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/core/window/__init__.py", line 1428, in on_touch_down if w.dispatch('on_touch_down', touch): File "kivy/_event.pyx", line 724, in kivy._event.EventDispatcher.dispatch File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/uix/screenmanager.py", line 1198, in on_touch_down return super(ScreenManager, self).on_touch_down(touch) File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/uix/widget.py", line 545, in on_touch_down if child.dispatch('on_touch_down', touch): File "kivy/_event.pyx", line 724, in kivy._event.EventDispatcher.dispatch File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/uix/relativelayout.py", line 297, in on_touch_down ret = super(RelativeLayout, self).on_touch_down(touch) File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/uix/widget.py", line 545, in on_touch_down if child.dispatch('on_touch_down', touch): File "kivy/_event.pyx", line 724, in kivy._event.EventDispatcher.dispatch File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/uix/widget.py", line 545, in on_touch_down if child.dispatch('on_touch_down', touch): File "kivy/_event.pyx", line 724, in kivy._event.EventDispatcher.dispatch File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/uix/behaviors/button.py", line 151, in on_touch_down self.dispatch('on_press') File "kivy/_event.pyx", line 720, in kivy._event.EventDispatcher.dispatch File "kivy/_event.pyx", line 1263, in kivy._event.EventObservers.dispatch File "kivy/_event.pyx", line 1147, in kivy._event.EventObservers._dispatch File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/lib/python3.8/site-packages/kivy/lang/builder.py", line 57, in custom_callback exec(__kvlang__.co_value, idmap) File "/private/var/containers/Bundle/Application/11B33360-3355-46C5-B0C2-5EEBDBD7FB39/recycle.app/YourApp/layout.kv", line 123, in <module> root.on_press() File "/Users/orlandoalexander/recycle-ios/YourApp/main.py", line 78, in on_press PermissionError: [Errno 1] Operation not permitted: 'myfile.wav' 2021-03-12 01:00:11.424098+0000 recycle[2718:198076] Application quit abnormally! 2021-03-12 01:00:11.497647+0000 recycle[2718:198076] Leaving Why is a Permission Error raised when I try to access the 'audio.wav' file?
https://stackoverflow.com/questions/66592774/file-permission-error-in-xcode-using-python March 12, 2021 at 09:08AM
没有评论:
发表评论