2014-04-28 3 views
0

J'ai essayé de nombreuses façons différentes, mais aucune d'entre elles ne semble fonctionner. Cette méthode n'obtient pas d'erreurs, mais ne fait rien. Je place tous mes sons dans un sous-répertoire sous mon projet principal. La plupart du code que j'ai essayé était de différentes manières comme MediaPlayer et SoundPooling. Aucun d'eux n'a travaillé pour moi et j'ai donc essayé cela. Si quelqu'un pouvait corriger cela pour moi ou me faire un tutoriel, ce serait génial.Lecture de fichiers MP3 sur une application Android?

package me.javoris767.twds2soundboard; 

import java.io.IOException; 

import me.javoris767.twds2soundboard.R; 
import android.view.View; 
import android.app.Activity; 
import android.content.res.AssetFileDescriptor; 
import android.media.MediaPlayer; 
import android.os.Bundle; 


public class ClementinePage extends Activity { 
MediaPlayer mp=new MediaPlayer(); 
public boolean isPlaying; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.fragment_clementine_page); 

} 

public void playSound(String file) { 
    AssetFileDescriptor afd = null; 
    try { 
     afd = getAssets().openFd(file); 
     MediaPlayer player = new MediaPlayer(); 
     player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), 
       afd.getLength()); 

     player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
      public void onPrepared(MediaPlayer p1) { 
       p1.start(); 
       isPlaying = true; 
      } 
     }); 
}catch (IOException e) { 
    e.printStackTrace(); 
    } 
} 

public void onNoClick(View v) { 
    playSound("sounds/ohno.mp3"); 
} 
} 

Répondre

0

quelque chose comme ça

//initialising the two new buttons 
    final Button btSong1 = (Button)findViewById(R.id.btnPlaySong1); 
    final Button btSong2 = (Button)findViewById(R.id.btnPlaySong2); 

    //initialising the two new media player instances 
    song1 = new MediaPlayer(); 
    song1 = MediaPlayer.create(this, R.raw.song3); 

    song2 = new MediaPlayer(); 
    song2 = MediaPlayer.create(this, R.raw.song4); 



    //The code for the two buttons go here 

    btSong1.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
     //This is where your code will go 
      switch(stateOfPlaying){ 
      case 0: 
       song1.start(); 
       stateOfPlaying = 1; 
       btSong1.setText("Pause Song 1"); 
       btSong2.setVisibility(View.INVISIBLE); 


       break; 
      case 1: 
       song1.pause(); 
       stateOfPlaying = 0; 
       btSong1.setText("Play Song 1"); 
       btSong2.setVisibility(View.VISIBLE); 
       break; 
      }//switch 

     }//end of onClick 
    });//btSong1 

    btSong2.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
     //This is where your code will go 
      switch(stateOfPlaying){ 
      case 0: 
       song2.start(); 
       stateOfPlaying = 1; 
       btSong2.setText("Pause Song 2"); 
       btSong1.setVisibility(View.INVISIBLE); 



       break; 
      case 1: 
       song2.pause(); 
       stateOfPlaying = 0; 
       btSong2.setText("Play Song 2"); 
       btSong1.setVisibility(View.VISIBLE); 
       break; 
      }//switch 

     }//end of onClick 
    });//btSong2 
+0

J'ai une question à propos des lignes ** R.raw.song **/** R.id.btnPlaySong1 **. Comment allez-vous les mettre en place? Je ne le comprends pas vraiment. – user1947638

+0

Pour utiliser un média dans votre application, créez un dossier appelé 'raw' dans votre dossier' res' et y mettez votre fichier audio 'btnPlaySong1' est l'identifiant du bouton. –

+0

Est-ce que ça marche maintenant? –

0

Je vous conseille de ne pas utiliser des fichiers MP3 dans Android, car il semble manipuler les OGG beaucoup mieux. Pouvez-vous faire cela?

+0

Oui, je peux facilement les convertir. – user1947638