嗨,大家好,我和其他一些DJ希望能够将我们的混音上传到可以直接传输到我的应用的网站。目前我的文件存储在谷歌驱动器上。他们会下载,然后我可以通过媒体播放器播放。但我希望用户能够直接从网站上直接播放音乐。从一个网站/服务器流式传输一个MP3
1)您建议上传音乐的网站是什么?我有一个Firebase帐户,这是一个想法,或者我上传的文件中的数据是否会很昂贵?即时通讯帐号类型的付费。 ****编辑 所以香港专业教育学院发现,火力点可能是做一个实际可行的选择,这
2)什么是执行代码的最佳方式,使其流音乐直接,而不是先下载它?
****编辑 香港专业教育学院发现了一些代码,而拖网互联网,可以使这个可行的,但我接缝在的setDataSource将得到一个空指针错误
这是我的代码
我有这是我的onchild添加
final String url = dataSnapshot.child("url").getValue(String.class);
urlList.add(url);
然后在我的onitemclick我用
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());
}
});
}
这是我的全部的logcat与空指针错误
07-11 18:39:45.326 2565-2565/com.example.harrops.h20droidapp2 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.harrops.h20droidapp2, PID: 2565
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.setDataSource(java.lang.String)' on a null object reference
at com.example.harrops.h20droidapp2.Mixes$3.onSuccess(Mixes.java:198)
at com.example.harrops.h20droidapp2.Mixes$3.onSuccess(Mixes.java:192)
at com.google.android.gms.tasks.zze$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
问题(1)不是关于编程,因此是题外话。问题(2)过于宽泛,因此也是无关紧要的。 –
这是关于编程,乔怎么不是?感谢您的帮助 – markharrop
@JoeC是更好一点? – markharrop