-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
"No such file or directory" when using Res.getUri()
#4877
Comments
It is the expected behavior, because the resource on the android side is located inside a jar archive. The Uri has the correct path but your player doesn't support files in jar archives. |
You could try something like: https://stackoverflow.com/questions/15055747/play-media-from-from-zip-file-without-unzipping (I haven't check it.) |
@egorikftp First of all, the font check is dirty hack I'd like to remove but it is impossible to create a font by a byte array on android.
Files are not resources. Compose resources are part of UI. There is no such thing as "assets" on the JVM platform. What you ask is a platform dependent solution. If you want to add file to android assets you may use the android assets folder. |
For anyone interested I've created issue in Media3/Exoplayer repository. I have almost same use case. More details there. |
BTW, there is a technical limitation for that: to read android assets users have to provide an android context. it will make the library API more complicated |
@terrakok I think there is still a valid use case for offering support for assets on the resources library, in addition to the reasons above (which are caused by the fact that usage of Jar resources is not common on Android), there have been some issues with the performance of Jar resources in Android (Per my testing, the performance of Jar resources has improved in recent Android versions, but they are still slower by 15% than assets or raw files). To solve this issue without impacting the API, I think there are some approaches:
What do you think about these ideas? |
If someone is looking for some workarounds for the MediaPlayer issue, the issue created by @Woren has some possible solutions, and I shared one additional workaround there too. |
Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks. |
Describe the bug
I was developing multiplatform audio player using MediaPlayer for Android, AVAudioPlayer for iOS. I used new resource api
Res.getUri()
to get URI of the mp3 file.iOS works fine. By the way, there is an issue with Android:
Affected platforms
Versions
The text was updated successfully, but these errors were encountered: