0

我在 xml 文件中有一个 imageview 和按钮。加载 image1 并播放 song1.mp3 文件。当歌曲结束时,它应该加载下一张图像并播放 song2.mp3 歌曲,它应该一直播放到最后一张图像。用于关闭和退出应用程序的按钮。

 import android.media.MediaPlayer;
 import android.media.MediaPlayer.OnCompletionListener;
 import android.os.Bundle;
 import android.widget.ImageView;
 import android.app.Activity;
 import android.content.res.AssetFileDescriptor;

public class MainActivity extends Activity {
 public MediaPlayer mpp;
 final int image[] = {R.drawable.apple,R.drawable.ball,R.drawable.cat};
int i=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
            final ImageView img = (ImageView) findViewById(R.id.img);


    String audio[]={"song1.mp3","song2.mp3","song3.mp3"};

   // MediaPlayer mp = new MediaPlayer();

    AssetFileDescriptor descriptor;
            try {
                descriptor = getAssets().openFd(audio[i]);
                mpp.setDataSource( descriptor.getFileDescriptor(), descriptor.getStartOffset(),descriptor.getLength());
                descriptor.close();
                mpp.prepare();
                mpp.start();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            mpp.setOnCompletionListener(new OnCompletionListener() {

                @Override
                public void onCompletion(MediaPlayer arg0) {
                    // TODO Auto-generated method stub
                    img.setImageResource(image[i]);
                    i++;
                    mpp.start();
                }
            });
}

}

4

2 回答 2

0

没有 LogCat 输出很难说什么,但看起来你有空引用。在调用之前,img.setImageResource(image[i])您必须将 ImageView 分配给img变量,如果该 View 是在您的 activity_main.xml 中定义的,您应该添加以下行onCreate()

img = (ImageView) findViewById(R.id.you_imageview_id);
于 2013-04-03T19:19:45.660 回答
0

测试手机内存不足(对像我这样使用个人手机进行开发的人有帮助)

  1. 如果内存真的满了,那么卸载一些不需要的应用程序。
  2. 如果上述说法不正确,则重启手机即可解决问题。

我的三星迷人手机出现此错误。重启手机一直工作。

于 2013-04-03T20:13:07.447 回答