请问有谁碰到过这个问题,怎么解决的?请高人解答一下04-28 04:45:19.088: D/AndroidRuntime(619): Shutting down VM
04-28 04:45:19.088: W/dalvikvm(619): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
04-28 04:45:19.094: E/AndroidRuntime(619): FATAL EXCEPTION: main
04-28 04:45:19.094: E/AndroidRuntime(619): java.lang.IllegalStateException: Could not execute method of the activity
04-28 04:45:19.094: E/AndroidRuntime(619):  at android.view.View$1.onClick(View.java:2072)
04-28 04:45:19.094: E/AndroidRuntime(619):  at android.view.View.performClick(View.java:2408)
04-28 04:45:19.094: E/AndroidRuntime(619):  at android.view.View$PerformClick.run(View.java:8816)
04-28 04:45:19.094: E/AndroidRuntime(619):  at android.os.Handler.handleCallback(Handler.java:587)
04-28 04:45:19.094: E/AndroidRuntime(619):  at android.os.Handler.dispatchMessage(Handler.java:92)
04-28 04:45:19.094: E/AndroidRuntime(619):  at android.os.Looper.loop(Looper.java:123)
04-28 04:45:19.094: E/AndroidRuntime(619):  at android.app.ActivityThread.main(ActivityThread.java:4627)
04-28 04:45:19.094: E/AndroidRuntime(619):  at java.lang.reflect.Method.invokeNative(Native Method)
04-28 04:45:19.094: E/AndroidRuntime(619):  at java.lang.reflect.Method.invoke(Method.java:521)
04-28 04:45:19.094: E/AndroidRuntime(619):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-28 04:45:19.094: E/AndroidRuntime(619):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-28 04:45:19.094: E/AndroidRuntime(619):  at dalvik.system.NativeStart.main(Native Method)
04-28 04:45:19.094: E/AndroidRuntime(619): Caused by: java.lang.reflect.InvocationTargetException
04-28 04:45:19.094: E/AndroidRuntime(619):  at com.bangda.mp4test.OnLineMp4TestActivity.play(OnLineMp4TestActivity.java:41)
04-28 04:45:19.094: E/AndroidRuntime(619):  at java.lang.reflect.Method.invokeNative(Native Method)
04-28 04:45:19.094: E/AndroidRuntime(619):  at java.lang.reflect.Method.invoke(Method.java:521)
04-28 04:45:19.094: E/AndroidRuntime(619):  at android.view.View$1.onClick(View.java:2067)
04-28 04:45:19.094: E/AndroidRuntime(619):  ... 11 more
04-28 04:45:19.094: E/AndroidRuntime(619): Caused by: java.lang.IllegalArgumentException
04-28 04:45:19.094: E/AndroidRuntime(619):  at android.media.MediaPlayer.setDataSource(Native Method)
04-28 04:45:19.094: E/AndroidRuntime(619):  ... 15 more
04-28 04:52:05.354: E/MediaPlayer(652): error (1, -2147483648)
04-28 04:52:05.354: D/AndroidRuntime(652): Shutting down VM
04-28 04:52:05.354: W/dalvikvm(652): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
04-28 04:52:05.365: E/AndroidRuntime(652): FATAL EXCEPTION: main
04-28 04:52:05.365: E/AndroidRuntime(652): java.lang.IllegalStateException: Could not execute method of the activity
04-28 04:52:05.365: E/AndroidRuntime(652):  at android.view.View$1.onClick(View.java:2072)
04-28 04:52:05.365: E/AndroidRuntime(652):  at android.view.View.performClick(View.java:2408)
04-28 04:52:05.365: E/AndroidRuntime(652):  at android.view.View$PerformClick.run(View.java:8816)
04-28 04:52:05.365: E/AndroidRuntime(652):  at android.os.Handler.handleCallback(Handler.java:587)
04-28 04:52:05.365: E/AndroidRuntime(652):  at android.os.Handler.dispatchMessage(Handler.java:92)
04-28 04:52:05.365: E/AndroidRuntime(652):  at android.os.Looper.loop(Looper.java:123)
04-28 04:52:05.365: E/AndroidRuntime(652):  at android.app.ActivityThread.main(ActivityThread.java:4627)
04-28 04:52:05.365: E/AndroidRuntime(652):  at java.lang.reflect.Method.invokeNative(Native Method)
04-28 04:52:05.365: E/AndroidRuntime(652):  at java.lang.reflect.Method.invoke(Method.java:521)
04-28 04:52:05.365: E/AndroidRuntime(652):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-28 04:52:05.365: E/AndroidRuntime(652):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-28 04:52:05.365: E/AndroidRuntime(652):  at dalvik.system.NativeStart.main(Native Method)
04-28 04:52:05.365: E/AndroidRuntime(652): Caused by: java.lang.reflect.InvocationTargetException
04-28 04:52:05.365: E/AndroidRuntime(652):  at com.bangda.mp4test.OnLineMp4TestActivity.play(OnLineMp4TestActivity.java:48)
04-28 04:52:05.365: E/AndroidRuntime(652):  at java.lang.reflect.Method.invokeNative(Native Method)
04-28 04:52:05.365: E/AndroidRuntime(652):  at java.lang.reflect.Method.invoke(Method.java:521)
04-28 04:52:05.365: E/AndroidRuntime(652):  at android.view.View$1.onClick(View.java:2067)
04-28 04:52:05.365: E/AndroidRuntime(652):  ... 11 more
04-28 04:52:05.365: E/AndroidRuntime(652): Caused by: java.io.IOException: Prepare failed.: status=0x1
04-28 04:52:05.365: E/AndroidRuntime(652):  at android.media.MediaPlayer.prepare(Native Method)
04-28 04:52:05.365: E/AndroidRuntime(652):  ... 15 more

解决方案 »

  1.   

    报的还是很清楚的:MediaPlayer.setDataSource()参数不对,检查一下参数;
    还没正确执行setDataSource()进入Initialized状态之前,当然prepare()也是不对的。另,播放流媒体用prepareAsync()异步方式。
      

  2.   

    后来出现这个错误提示,我对流媒体没有什么研究,看不懂这个是什么意思,请问能解释一下吗?或者怎么解决这个异常。04-28 08:38:14.034: E/MediaPlayer(952): start called in state 4
    04-28 08:38:14.034: E/MediaPlayer(952): error (-38, 0)
    04-28 08:38:14.034: E/MediaPlayer(952): Error (-38,0)
    04-28 08:38:14.555: E/MediaPlayer(952): error (1, -2147483648)
    04-28 08:38:14.555: E/MediaPlayer(952): Error (1,-2147483648)
      

  3.   

    搞了好几天都不能解决,我把源码发出来大家看看,这个异常怎么解决
    代码如下:
    import java.io.IOException;
    import java.net.UnknownHostException;
    import android.app.Activity;
    import android.graphics.PixelFormat;
    import android.os.Bundle;
    import android.os.Environment;
    import android.view.SurfaceHolder;
    import android.view.View;
    public class OnLineMp4TestActivity extends Activity implements
    SurfaceHolder.Callback{
    android.media.MediaPlayer player;
    android.view.SurfaceView surfaceView;
    android.view.SurfaceHolder surfaceholder;
    String strFilePath = "";
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            surfaceView = (android.view.SurfaceView) findViewById(R.id.surfaceview);
      surfaceholder = surfaceView.getHolder();
      surfaceholder.addCallback(this);
      surfaceholder.setFixedSize(176, 144);
      surfaceholder.setType(surfaceholder.SURFACE_TYPE_PUSH_BUFFERS);
      getWindow().setFormat(PixelFormat.UNKNOWN);
        
            
        }
        public void play(View view) throws IllegalArgumentException, IllegalStateException, IOException, InterruptedException {
         System.out.println("play");
         
         addMovie();
         
         player = new android.media.MediaPlayer();
            player.setDataSource(saveFile);
      player.setAudioStreamType(android.media.AudioManager.STREAM_MUSIC);
      player.setScreenOnWhilePlaying(true);
      
      player.setDisplay(surfaceholder);
      player.prepareAsync();
      player.start();
        }
        java.net.Socket socket;
    String saveFile;
    java.io.DataInputStream din;
    java.io.DataOutputStream dout;
    java.io.File temp;
    private void addMovie() throws InterruptedException {
      new Thread() {
       public void run() {
        try {
         socket = new java.net.Socket("10.0.2.2", 8888);
         if (socket.isConnected()) {
          System.out.println("连接成功!");
          din = new java.io.DataInputStream(
            new java.io.BufferedInputStream(
              socket.getInputStream()));
          dout = new java.io.DataOutputStream(
            new java.io.BufferedOutputStream(
              socket.getOutputStream()));
          
          dout.writeUTF("<#Movie#>");
          dout.flush();
          
          String msg=din.readUTF();
          if(msg.startsWith("<#New_Movie_File#>")){
           System.out.println(msg);
           msg=msg.substring(18);
           String[] sa=msg.split(",");
           saveFile =Environment.getExternalStorageDirectory()+ java.io.File.separator
             + sa[0];
           System.out.println(saveFile);
           
           java.io.File file = new java.io.File(saveFile);
           java.io.FileOutputStream fout = new java.io.FileOutputStream(
             file);
           java.io.DataOutputStream fdout = new java.io.DataOutputStream(
             new java.io.BufferedOutputStream(fout));
           byte[] bys = new byte[16];
           int fileSize = Integer.valueOf(sa[1]);
           System.out.println("UpLoadFileActivity-接收文件的大小:"
             + fileSize);
           int currSize = 0;
           int count = 0;
           while (currSize < fileSize && count != -1) {
            count = din.read(bys);
            if (count > -1) {
             fdout.write(bys, 0, count);
             fdout.flush();
             currSize += count;
             //System.out.println("文件当前传送长度:"+count);
             //System.out.println("文件当前传送总长度:"+currSize);
            }
           }
           System.out.println("文件接收完毕!当前接收文件长度:" + currSize);
           fdout.close();
           dout.writeUTF("<#Success_Music#>");
           dout.flush();
           
          }
         }
        } catch (UnknownHostException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
        } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
        }
       }
      }.start();
      
      Thread.sleep(1000);
      
    }
    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width,
       int height) {
      // TODO Auto-generated method stub
      
    }
    @Override
    public void surfaceCreated(SurfaceHolder holder) {
      // TODO Auto-generated method stub
      
    }
    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
      // TODO Auto-generated method stub
      
    }
    }