无法创建MediaPlayer,音板的错误

Kyl*_*iel 1 android media-player

调试时我无法创建MediaPlayer

当我点击声音按钮时,应用加载然后挂起.这是logcat错误我似乎无法找到出错的地方.

04-03 16:00:17.273: ERROR/gralloc(61): [unregister] handle 0x4456d0 still locked (state=40000001)
04-03 16:00:22.793: ERROR/PlayerDriver(31): Command PLAYER_PREPARE completed with an error or info PVMFErrResource
04-03 16:00:22.803: ERROR/MediaPlayer(279): error (1, -17)
04-03 16:00:17.273: ERROR/gralloc(61): [unregister] handle 0x4456d0 still locked (state=40000001)
Run Code Online (Sandbox Code Playgroud)

这是我的代码.

package com.yes.hotrod;

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

public class main extends Activity {
MediaPlayer FilmSound=new MediaPlayer();

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

    Button button1 = (Button) findViewById(R.id.button1);
    FilmSound = MediaPlayer.create(getApplicationContext(),
            R.raw.animalkingdom);
    button1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (FilmSound.isPlaying()) {
                FilmSound.stop();
                FilmSound.reset();
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.animalkingdom);
                FilmSound.start();
            } else {
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.animalkingdom);
                FilmSound.start();
            }
        }
    });

    Button button2 = (Button) findViewById(R.id.button2);
    FilmSound = MediaPlayer.create(getApplicationContext(),
            R.raw.bigassstunt);
    button2.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (FilmSound.isPlaying()) {
                FilmSound.stop();
                FilmSound.reset();
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.bigassstunt);
                FilmSound.start();
            } else {
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.bigassstunt);
                FilmSound.start();
            }
        }
    });
    Button button3 = (Button) findViewById(R.id.button3);
    FilmSound = MediaPlayer
            .create(getApplicationContext(), R.raw.godsofwar);
    button3.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (FilmSound.isPlaying()) {
                FilmSound.stop();
                FilmSound.reset();
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.godsofwar);
                FilmSound.start();
            } else {
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.godsofwar);
                FilmSound.start();
            }
        }
    });
    Button button4 = (Button) findViewById(R.id.button4);
    FilmSound = MediaPlayer.create(getApplicationContext(), R.raw.greentea);
    button4.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (FilmSound.isPlaying()) {
                FilmSound.stop();
                FilmSound.reset();
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.greentea);
                FilmSound.start();
            } else {
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.greentea);
                FilmSound.start();
            }
        }
    });
    Button button11 = (Button) findViewById(R.id.button11);
    FilmSound = MediaPlayer.create(getApplicationContext(), R.raw.havefun);
    button11.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (FilmSound.isPlaying()) {
                FilmSound.stop();
                FilmSound.reset();
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.havefun);
                FilmSound.start();
            } else {
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.havefun);
                FilmSound.start();
            }
        }
    });
    Button button6 = (Button) findViewById(R.id.button6);
    FilmSound = MediaPlayer.create(getApplicationContext(),
            R.raw.kisswashot);
    button6.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (FilmSound.isPlaying()) {
                FilmSound.stop();
                FilmSound.reset();
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.kisswashot);
                FilmSound.start();
            } else {
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.kisswashot);
                FilmSound.start();
            }
        }
    });
    Button button7 = (Button) findViewById(R.id.button7);
    FilmSound = MediaPlayer.create(getApplicationContext(), R.raw.ohshit);
    button7.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (FilmSound.isPlaying()) {
                FilmSound.stop();
                FilmSound.reset();
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.ohshit);
                FilmSound.start();
            } else {
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.ohshit);
                FilmSound.start();
            }
        }
    });
    Button button8 = (Button) findViewById(R.id.button8);
    FilmSound = MediaPlayer.create(getApplicationContext(),
            R.raw.throwingstar);
    button8.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (FilmSound.isPlaying()) {
                FilmSound.stop();
                FilmSound.reset();
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.throwingstar);
                FilmSound.start();
            } else {
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.throwingstar);
                FilmSound.start();
            }
        }
    });
    Button button9 = (Button) findViewById(R.id.button9);
    FilmSound = MediaPlayer.create(getApplicationContext(),
            R.raw.twolegittwoquit);
    button9.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (FilmSound.isPlaying()) {
                FilmSound.stop();
                FilmSound.reset();
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.twolegittwoquit);
                FilmSound.start();
            } else {
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.twolegittwoquit);
                FilmSound.start();
            }
        }
    });
    Button button10 = (Button) findViewById(R.id.button10);
    FilmSound = MediaPlayer.create(getApplicationContext(), R.raw.whiskey);
    button10.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (FilmSound.isPlaying()) {
                FilmSound.stop();
                FilmSound.reset();
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.whiskey);
                FilmSound.start();
            } else {
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.whiskey);
                FilmSound.start();
            }
        }
    });
    Button button5 = (Button) findViewById(R.id.button5);
    FilmSound = MediaPlayer.create(getApplicationContext(), R.raw.demons);
    button5.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (FilmSound.isPlaying()) {
                FilmSound.stop();
                FilmSound.reset();
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.demons);
                FilmSound.start();
            } else {
                FilmSound = MediaPlayer.create(getApplicationContext(),
                        R.raw.demons);
                FilmSound.start();
            }
        }
    });
}
}
Run Code Online (Sandbox Code Playgroud)

这是准备的代码:

Button button1 = (Button) findViewById(R.id.button1);
        FilmSound = MediaPlayer.create(getApplicationContext(),
                R.raw.animalkingdom);
        button1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    FilmSound.prepare();
                } catch (IllegalStateException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                if (FilmSound.isPlaying()) {
                    FilmSound.stop();
                    FilmSound.reset();

                    FilmSound = MediaPlayer.create(getApplicationContext(),
                            R.raw.animalkingdom);
                    FilmSound.start();
                } else {
                    FilmSound = MediaPlayer.create(getApplicationContext(),
                            R.raw.animalkingdom);
                    FilmSound.start();
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

Tit*_*iuM 10

我刚才有类似的问题.我只需将以下内容添加到您的清单文件中即可解决问题:

 <uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)

在ICS之前,不需要互联网许可.