Fazer desta forma é simples, porém não é recomendado. Até porque a sua playlist (musicas que ficam na pasta res/raw) será compilada junto com a sua aplicação, e consequentemente, aumentará o tamanho do arquivo apk final que será utilizado.
O recomendado seria salvar os arquivos de músicas e vídeos em outra pasta ou até mesmo usar o cartão de memória. Ficando:
MediaPlayer player = new MediaPlayer();
player.setDataSource("data/local/tmp/musica.mp3");
player.prepare();
player.start();
Observe que o método prepare() precisa obrigatoriamente ser chamado. No seu código não foi chamado explicitamente, porém dentro do método create() a chamada é feita internamente.
[code]@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
g = (GridView) findViewById(R.id.gridView);
m = MediaPlayer.create(this, R.raw.musica); < ----- Aqui eu coloco a musica (no caso Hino do Brasil)
try {
m.prepare();
} catch (Exception e) {
}
g.setAdapter(new ImageAdapter(this, bandeiraPaises,
new GridView.LayoutParams(60, 60)));
// evento de click
g.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
switch (position) {
case 0:
// Hino nacional
Toast.makeText(ClassePrincipal.this,
"Tocando o Hino nacional: ", Toast.LENGTH_LONG)
.show();
m.start(); <---- Aqui eu coloco pra tocar
break;
case 1:
Toast.makeText(ClassePrincipal.this,
"Uruguai Posicção : " + position, Toast.LENGTH_LONG)
.show();
<-----------------------------------Mais se eu der um m.start() aqui vai tocar o hino do brasil eu teria que colocar no onCreate o Hino do Uruguai é aki que da pau no meu codigo tem hora que nao consegue achar a musica o atributi m fica como null
break;[/code]