【发布时间】:2017-05-01 19:57:04
【问题描述】:
我需要从我的 firebase 存储 gs://fir-b9532.appspot.com/songs/song1.mp3 下载一个 mp3 文件并将其播放到我的 Android 应用程序中。 我想将 mp3 文件临时存储在我的设备内存中,用媒体播放器播放,然后带上一首新歌。
我按照 firebase 手册编写了以下简单代码,但似乎无法正常工作。任何想法出了什么问题?
package com.example.andreaskonstantakos.firebase;
import android.media.MediaPlayer;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference storageRef = storage.getReference();
StorageReference songsRef = storageRef.child("songs");
StorageReference song1Ref = storageRef.child("songs/song1.mp3");
final long ONE_MEGABYTE = 1024 * 1024;
song1Ref.getBytes(ONE_MEGABYTE).addOnSuccessListener(new OnSuccessListener<byte[]>() {
@Override
public void onSuccess(byte[] bytes) {
// Data for "songs/song1.mp3" is returns, use this as needed
MediaPlayer md = MediaPlayer.create(MainActivity.this,R.id.bytes);
md.setLooping(false);
md.start();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
}
});
}
}
【问题讨论】:
-
在 onFailure 方法中继续执行,从不进入 onSuccess
标签: android file firebase firebase-storage