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