2012-05-28 69 views
0

我需要编写一个非常简单的android应用程序,但我有一个严重的问题。MediaPlayer错误

这里是我的类:

package com.music.playa; 

import java.util.Random; 

import android.app.Activity; 
import android.content.Context; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class PlayMusic extends Activity { 

    MediaPlayer mediaPlayer; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 

    public void playSound() { 

     try { 
      mediaPlayer.stop(); 
      mediaPlayer.reset(); 
      mediaPlayer.release(); 
      mediaPlayer = null;   
     } catch (Exception ex) { 

     } 

     String[] sounds = { "sound1", "sound2", "sound3" }; 
     mediaPlayer = null; 
     int path = getResources().getIdentifier(
       sounds[new Random().nextInt(sounds.length)], "raw", 
       getPackageName()); 
     mediaPlayer = MediaPlayer.create(this, path); 

     mediaPlayer 
       .setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
        public void onCompletion(MediaPlayer mp) { 
         // do something... 
        } 
       }); 

     mediaPlayer.setVolume(1, 1); 
     mediaPlayer.start(); 

    } 

} 

的问题是,当我按下按钮调用PlaySound函数,再经过一段时间(约40-50按下按钮的)时,控制台抛出很多错误:

05-28 12:56:00.202: E/MediaPlayer(755): error (-38, 0) 
05-28 12:56:01.153: E/MediaPlayer(755): error (-19, 0) 
05-28 12:56:01.153: E/MediaPlayer(755): Error (-19,0) 

声音停止播放。

我应该怎么办?

Android SDK中2.3.3

+0

打印logcat的,所以我们可以帮助你,我们找不到,除非你过去在logcat中产生的异常和它 在logcat中 异常的原因..... 由什么原因引起你的错误。 ... –

回答

0

您应该创建的媒体播放器的实例作为PlayMedia类的字段和初始化它你设定按钮的onclick听众面前。

在onResume()中准备并在onPause()中释放它。你的按钮唯一需要做的就是停止/开始。