我是Android Studio中的一个菜鸟,我创建了一个超过300个声音的Soundboard。 有没有办法在Firebase中上传声音,然后将它们从Firebase中播出?
这是只有2个声音的代码。只是为了展示我的Soundboard如何运作。
with open("some_file","wb") as f:
f.write(u'0.021*"\u0d2a\u0d3f" + 0.021*"\u0d35\u0d3f\u0d36\u0d4d\u0d35\u0d02\u0d2d\u0d30\u0d28\u0d4d\u0d31\u0d46" + 0.021*"\u0d05\u0d26\u0d4d\u0d26\u0d47\u0d39\u0d02"'.encode("utf-8"))
这有300个声音。
您能解释一下如何将声音放入Firebase(如果可以的话)以及如何将它们从Firebase中播放出来吗?
对不起我的糟糕经历和我的英语:)
答案 0 :(得分:1)
正如@AL在评论中所建议的那样,您可以在Firebase存储中托管声音,每当您的应用需要播放声音时,您都可以触发下载或流式播放声音的请求。
但是,如果这些声音是应用中一个或多个功能的必备资源,并且您希望在第一次启动应用后让您的应用离线使用,我建议您将这些声音上传为{{ 3}}
Google Play通常会在下载APK的同时下载扩展文件,但是您仍然需要使用自己的逻辑来检查文件是否已下载,如果不是,请从提供的URL下载应用程序启动时,Google Play的应用程序许可服务会给您回复。
每次应用启动时我们需要检查这个的原因是:
如果您将声音上传到APK扩展文件中,APK expansion file下面的提示特别适合您的情况:
如果要将媒体文件打包成ZIP,则可以对具有偏移和长度控件的文件(例如MediaPlayer.setDataSource()和SoundPool.load())使用媒体播放调用,而无需解压缩ZIP 。为了使其正常工作,在创建ZIP包时,不得对媒体文件执行额外压缩。例如,使用zip工具时,应使用-n选项指定不应压缩的文件后缀: zip -n .mp4; .ogg main_expansion media_files
答案 1 :(得分:0)
您可以使用Streaming API或任何托管服务器上传 Firebase存储空间上的所有文件。
然后,您可以使用 MediaPlayer
播放它mediaPlayer = MediaPlayer.create(this, Uri.parse("http://vprbbc.streamguys.net:80/vprbbc24.mp3"));
mediaPlayer.start();
您可以看到更多相关信息:https://stackoverflow.com/a/13740850/1318946
希望它可以帮助您在线玩,您的应用程序大小将会减少。 :)