我已经浏览了Google链接,而我所能收集到的一切就是如何在单击按钮时从Firebase播放音频。在我的应用程序中,我在listView项上添加了自定义按钮。我试图从原始文件夹播放文件,但这会增加我避免的Apk大小。
我试图使适配器类中的按钮在单击时播放不同的音频URL。
请问有人知道如何从Firebase存储中的listView中播放音频文件吗?
我想使按钮按顺序播放,就像在Firebase数据库中一样。 Can I use Firebase Storage for online music streaming?仅说明如何使用一个URL。 从Firebase使用多个Urls怎么办,将listView上的每个项目都提取出来??
这是我的 AudioActivity
public class AudioActivity extends Activity{
private ArrayList<AudiosModel> arrayList;
private CustomAudioAdapter adapter;
private ListView songList;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.songs_list);
songList = (ListView) findViewById(R.id.songList);
arrayList = new ArrayList<>();
arrayList.add(new AudiosModel("", "",));
arrayList.add(new AudiosModel("", "", ));
arrayList.add(new AudiosModel("", "", ));
arrayList.add(new AudiosModel("Success Defined", "", R.raw.tan));
arrayList.add(new AudiosModel("", "", R.raw.tan));
arrayList.add(new AudiosModel("", "", R.raw.tan));
arrayList.add(new AudiosModel("", "", R.raw.tan));
arrayList.add(new AudiosModel("Divine Friends", "", R.raw.tan));
arrayList.add(new AudiosModel("Time", "", R.raw.tan));
adapter = new CustomAudioAdapter(this, R.layout.custom_music_item, arrayList);
songList.setAdapter(adapter);
}
}
这是我的适配器类
public class CustomAudioAdapter extends BaseAdapter {
private Context context;
private int layout;
private ArrayList<AudiosModel> arrayList;
private MediaPlayer mediaPlayer;
private Boolean flag = true;
public CustomAudioAdapter(Context context, int layout, ArrayList<AudiosModel> arrayList) {
this.context = context;
this.layout = layout;
this.arrayList = arrayList;
}
@Override
public int getCount() {
return arrayList.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
private class ViewHolder {
TextView txtName, txtSinger;
ImageView ivPlay, ivStop;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder viewHolder;
if(convertView == null){
viewHolder = new ViewHolder();
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(layout, null);
viewHolder.txtName = (TextView) convertView.findViewById(R.id.tvSongName);
viewHolder.txtSinger = (TextView) convertView.findViewById(R.id.Singer);
viewHolder.ivPlay = (ImageView) convertView.findViewById(R.id.ivPlay);
viewHolder.ivStop = (ImageView) convertView.findViewById(R.id.ivStop);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
final AudiosModel music = arrayList.get(position);
viewHolder.txtName.setText(music.getName());
viewHolder.txtSinger.setText(music.getSinger());
// play music
viewHolder.ivPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(flag){
mediaPlayer = MediaPlayer.create(context, music.getSong());
flag = false;
}
if(mediaPlayer.isPlaying()) {
mediaPlayer.pause();
viewHolder.ivPlay.setImageResource(R.drawable.ic_play);
} else {
mediaPlayer.start();
viewHolder.ivPlay.setImageResource(R.drawable.ic_play);
}
}
});
return convertView;
}
}