Android 从站点/服务器流式播放mp3

Android 从站点/服务器流式播放mp3,android,firebase,streaming,mp3,firebase-storage,Android,Firebase,Streaming,Mp3,Firebase Storage,大家好,我和其他几个DJ希望能够将我们的混音上传到一个网站,然后可以直接流到我的应用程序中。目前,我的文件存储在谷歌硬盘上。他们会下载,然后我可以通过媒体播放器播放。但我希望用户能够直接从网站上播放音乐 1) 你建议上传音乐的网站是什么。我有一个firebase帐户这是一个想法还是我上传的文件中的数据很昂贵?我使用现收现付账户类型。 ****编辑 所以我发现firebase可能是一个切实可行的选择 2) 实现代码的最好方法是什么,这样它可以直接流式传输音乐,而不是先下载 ****编辑 我在网上搜

大家好,我和其他几个DJ希望能够将我们的混音上传到一个网站,然后可以直接流到我的应用程序中。目前,我的文件存储在谷歌硬盘上。他们会下载,然后我可以通过媒体播放器播放。但我希望用户能够直接从网站上播放音乐

1) 你建议上传音乐的网站是什么。我有一个firebase帐户这是一个想法还是我上传的文件中的数据很昂贵?我使用现收现付账户类型。 ****编辑 所以我发现firebase可能是一个切实可行的选择

2) 实现代码的最好方法是什么,这样它可以直接流式传输音乐,而不是先下载

****编辑 我在网上搜索时发现了一些代码,这些代码可以使这一点变得可行,但我发现setDatasource上出现了一个空指针错误

这是我的密码

这是我以前的孩子加的

 final String url = dataSnapshot.child("url").getValue(String.class);
  urlList.add(url);
然后在我的电脑里我用

mp3url = urlList.get(i);
 fetchAudioUrlFromFirebase();
最后介绍了mp3的流媒体播放方法

 private void fetchAudioUrlFromFirebase() {
    String mp3 = mp3url;
    final FirebaseStorage storage = FirebaseStorage.getInstance();
    storageRef = storage.getReferenceFromUrl(mp3);
    storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
        @Override
        public void onSuccess(Uri uri) {
            try {
                // Download url of file
                final String url = uri.toString();
                mMediaplayer.setDataSource(url);
                // wait for media player to get prepare
                mMediaplayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                    @Override
                    public void onPrepared(MediaPlayer mp) {
                        mp.start();
                    }
                });
                mMediaplayer.prepareAsync();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.i("TAG", e.getMessage());
                }
            });

}

问题1:我不知道有什么网站可以这样做,对不起

问题2:您必须学习如何在android中使用MediaPlayer类,下面是一个示例:

String link = "your link.mp3"; //usually it's ends with .mp3
Mediaplayer player = new MediaPlayer();
player.setDataSource(link);
player.prepare();//prepare to play
player.start();
这是一个快速而简单的例子。
您可以根据需要对其进行编辑。

下面的行表示:mmediplayer为空

java.lang.NullPointerException: Attempt to invoke virtual method 
'void android.media.MediaPlayer.setDataSource(java.lang.String)'
on a null object reference
在调用onSuccess(Uri)方法之前,请检查mMediaplayer是否已初始化

mMediaplayer = new MediaPlayer();

问题(1)与编程无关,因此与主题无关。问题(2)太宽泛了,因此也是离题的。这是关于编程的,乔,为什么不是呢?谢谢你的帮助though@JoeC好一点了吗?谢谢Mohad。就在这一秒,使用firebase将发布类似的结果,如果它有效的话。请检查我的更新问题谢谢你的支持help@markharrop你能发布完整的堆栈跟踪吗?这正是我的问题#你是Kim
mMediaplayer = new MediaPlayer();