首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用Firebase存储进行在线音乐流吗?

我可以使用Firebase存储进行在线音乐流吗?
EN

Stack Overflow用户
提问于 2016-09-29 07:36:18
回答 1查看 22.7K关注 0票数 33

我想要的是将mp3文件保存在Firebase上,然后将其流到安卓设备上。Firebase上的所有教程都讨论了图像文件的上传和下载。

如果还有比Firebase更容易存储和播放android音频的云,那么请提出建议。

EN

回答 1

Stack Overflow用户

发布于 2016-10-30 08:38:23

  1. 按照Mike的建议,Firebase提供了StreamDownloadTask,用于获取InputStream,但不幸的是,MediaPlayer不接受直接流。现在我们有两种选择,如果我们严格地想继续使用InputStream,据我所知- 在临时文件中写入流并将其传递给媒体播放器。就我个人而言,我不推荐这种方法。它包括不必要的数据写入,您还必须保持流数据、文件写入和媒体播放之间的同步。 b.创建StreamProxy服务器,作为npr新闻应用程序所做的。您可以找到App 这里的源代码。
  2. 从Firebase播放音乐文件的简单方法是首先使用存储引用获取下载URL,然后将该URL作为dataSource传递给媒体播放器。下面是代码片段- 公共类mMediaplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);MainActivity扩展AppCompatActivity实现MediaPlayer.OnPreparedListener {私有MediaPlayer mMediaplayer;@Override (Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mMediaplayer =新MediaPlayer();}私有fetchAudioUrlFromFirebase() {最终FirebaseStorage存储= FirebaseStorage.getInstance();//从我们的应用程序StorageReference storageRef =FirebaseStorage.getInstance创建存储引用storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener() { @Override (Uri uri) { try { //下载文件最终字符串url = uri.toString();mMediaplayer.setDataSource( url );//等待媒体播放器准备mMediaplayer.setOnPreparedListener(MainActivity.this);mMediaplayer.prepareAsync();}IOException e) { e.printStackTrace();} }) .addOnFailureListener(新的OnFailureListener() {@覆盖公共无效onFailure(@NonNull e) ){ Log.i("TAG",e.getMessage());};}@覆盖公共无效onPrepared(MediaPlayer mp) { mp.start();}}
票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39764165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档