Autore Topic: Come cambio dataSource di un MediaPlayer al click?  (Letto 499 volte)

Offline abioneperhobby

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LG optimus one
  • Sistema operativo:
    Windows 7
Come cambio dataSource di un MediaPlayer al click?
« il: 28 Gennaio 2012, 10:42:23 CET »
0
Buongiorno a tutti, e grazie per l'opportunità di partecipare a questa grande famiglia.

sono un programmatore As3 , e mi sto cimentando nella programmazione Android.

mi ritrovo a scontrarmi con un problema : una volta istanziato un MediaPlayer io voglio cambiare il file musicale associato al riproduttore al click di un tasto per poi metterlo in play.

pensavo di risolvere il problema in questo modo :

Codice: [Seleziona]

private OnClickListener listener = new OnClickListener() {
           
                public void onClick(View v) {
              riproduttore.setDataSource(this, R.raw.dsbudellato3s);
              riproduttore.start();
            }
        };


purtroppo però ottengo l'errore

The method setDataSource(Context, Uri) in the type MediaPlayer is not applicable for the arguments (new View.OnClickListener(){}, int)

ho cercato in varie guide, ma non trovo come sia possibile cambiare riferimento al contenuto multimediale .

Io posso mettere in start col click un riproduttore multimediale che ha gia la risource impostata, ma ovviamente non è la strada giusta perchè io devo usare sempre la stessa istanza e cambiarne source, non creare un sacco di istanze.

grazie per l'aiuto



« Ultima modifica: 30 Gennaio 2012, 19:41:21 CET da abioneperhobby »

Offline pisciotta.f

  • Utente junior
  • **
  • Post: 52
  • Respect: +2
    • Mostra profilo
Re:Come cambio dataSource di un MediaPlayer al click?
« Risposta #1 il: 15 Febbraio 2012, 10:20:22 CET »
0
Ti propongo una soluzione, non so quanto possa funzionare però...

Prova a creare un player video in questo modo ( sicuramente più breve ed efficace ):
Codice (Java): [Seleziona]
                video = (VideoView) findViewById(R.id.videoView);
                video.setVideoPath(url);

                ctlr = new MediaController(this);
                ctlr.setMediaPlayer(video);
                video.setMediaController(ctlr);
                video.start();

Spiego. Una VideoView da XML, nel quale poi carichi il MediaController.

In questo modo modificando al click il metodo setVideoPath, potrai modificare il file di riferimento.

Comunque nel tuo caso il problema sta nel fatto che nell'onClickListener, alla chiamata del setDataSource, utilizzi il THIS, che fa riferimento al listener e non più al contesto della classe ;)