Closed hitmacreeed closed 6 years ago
`
public class Teste_Music extends BaseActivity {
AudioPlayerView audioPlayerView;
Button tocar;
Button next;
ArrayList<Musica> list;
Musica atualMusica;
int indexMusic = 0;
TextView results;
String JsonURL = "https://.../songs/music.json";
String src;
RequestQueue requestQueue;
StatusMusica status;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FrameLayout contentFrameLayout = (FrameLayout) findViewById(R.id.content_frame);
getLayoutInflater().inflate(R.layout.teste_music, contentFrameLayout);
setTitle("Music");
requestQueue = Volley.newRequestQueue(this);
results = (TextView) findViewById(R.id.txtDisplay);
list = new ArrayList<>();
JsonArrayRequest arrayreq = new JsonArrayRequest(JsonURL,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
JSONObject colorObj = response.getJSONObject(0);
JSONArray colorArry = colorObj.getJSONArray("musicas");
for (int i = 0; i < colorArry.length(); i++) {
JSONObject jsonObject = colorArry.getJSONObject(i);
Musica music = new Musica();
src = jsonObject.getString("src");
music.url = src;
list.add(music);
}
atualMusica = list.get(0);
String data = "";
for(int i = 0; i < list.size(); i++){
data += "\n"+list.get(i).url;
}
results.setText(data);
}
catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Volley", "Error");
}
}
);
requestQueue.add(arrayreq);
audioPlayerView = (AudioPlayerView) findViewById(R.id.player);
tocar = (Button) findViewById(R.id.parar);
next = (Button) findViewById(R.id.proximo);
tocar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
if (status == StatusMusica.STOPPED){
status = StatusMusica.PLAYING;
audioPlayerView.toggleAudio();
}else{
status = StatusMusica.STOPPED;
}
audioPlayerView.withUrl(atualMusica.url);
} catch (Exception e) {
e.printStackTrace();
}
}
});
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
audioPlayerView.destroy();
if (indexMusic >= list.size()-1){
return;
}
indexMusic++;
atualMusica = list.get(indexMusic);
try {
if (status == StatusMusica.STOPPED){
status = StatusMusica.PLAYING;
}else{
status = StatusMusica.PAUSE;
audioPlayerView.toggleAudio();
}
audioPlayerView.withUrl(atualMusica.url);
} catch (Exception e) {
e.printStackTrace();
}
}
});
audioPlayerView.setOnAudioPlayerViewListener(new AudioPlayerView.OnAudioPlayerViewListener() {
@Override
public void onAudioPreparing() {
//.setVisibility(View.VISIBLE);
}
@Override
public void onAudioReady() {
//.setVisibility(View.INVISIBLE);
}
@Override
public void onAudioFinished() {
// next.performClick();
}
@Override
public void onError(Exception e) {
}
});
}
@Override
protected void onDestroy() {
audioPlayerView.destroy();
super.onDestroy();
}
class Musica {
String url;
}
public enum StatusMusica {
PLAYING,
STOPPED,
PAUSE
}
}
`
There is some problem with the play twice, I didn't have the time to fix it. But you cab check this issue, it might be helpful. https://github.com/HugoMatilla/AudioPlayerView/issues/5
thanks, but solved by doing this
`
tocar.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onClick(View v) {
try {
status = playing ? StatusMusica.PLAYING : StatusMusica.PAUSE;
audioPlayerView.withUrl(atualMusica.url);
audioPlayerView.toggle(tocar, status);
playing = !playing;
} catch (Exception e) {
e.printStackTrace();
}
}
});`
Hi made a playlist(next button) for this player since it does not have one and on the button play why i have to click twice?