qq_19400369 2017-04-19 09:09 采纳率: 0%
浏览 907

关于mediaplay遇到一些问题,急求

代码如下
package org.lxh.demo;

import java.io.IOException;

import android.app.Activity;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageButton;

public class PlayVideoActivity extends Activity {
private ImageButton play = null;
private ImageButton stop = null;
private ImageButton back = null;
private MediaPlayer media = null;
private SurfaceView sufaceView = null;
private SurfaceHolder surfaceHolder = null;
private String filepath = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.requestWindowFeature(Window.FEATURE_NO_TITLE); // 不显示标题
    super.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    super.getWindow().addFlags(
            WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // 高亮的风格显示
    super.setContentView(R.layout.play);

    this.filepath = super.getIntent().getStringExtra("filepath") ;

    this.play = (ImageButton) super.findViewById(R.id.play);
    this.stop = (ImageButton) super.findViewById(R.id.stop);
    this.back = (ImageButton) super.findViewById(R.id.back);
    this.sufaceView = (SurfaceView) super.findViewById(R.id.surfaceView) ;
    this.surfaceHolder = this.sufaceView.getHolder() ;
    this.surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS) ;
    this.media =new MediaPlayer() ;
    this.media.reset() ;
    try {
        this.media.setDataSource(this.filepath) ;
    } catch (Exception e) {
    }

    this.play.setOnClickListener(new PlayOnClickListenerImpl());
    this.stop.setOnClickListener(new StopOnClickListenerImpl());
    this.back.setOnClickListener(new BackOnClickListenerImpl());
}

private class PlayOnClickListenerImpl implements OnClickListener {
    @Override
    public void onClick(View v) {
        PlayVideoActivity.this.media.setAudioStreamType(AudioManager.STREAM_MUSIC) ;
        PlayVideoActivity.this.media.setDisplay(PlayVideoActivity.this.surfaceHolder) ;
        try {
            PlayVideoActivity.this.media.prepare() ;
            PlayVideoActivity.this.media.start() ;
        } catch (Exception e) {
        }
    }
}

private class StopOnClickListenerImpl implements OnClickListener {
    @Override
    public void onClick(View v) {
        PlayVideoActivity.this.media.stop() ;
    }
}

private class BackOnClickListenerImpl implements OnClickListener {
    @Override
    public void onClick(View v) {
        Intent it = new Intent(PlayVideoActivity.this, BroswerActivity.class);
        PlayVideoActivity.this.startActivity(it);
    }
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK) {
        this.media.stop() ;
        this.media.release() ;
        super.finish() ;
    }
    return false ;
} 

}
编译的时候报错为
图片说明

  • 写回答

1条回答 默认 最新

  • 鲨鱼不会飞 2017-04-19 09:27
    关注
            PlayVideoActivity.this.media.prepare() ;
            PlayVideoActivity.this.media.start() ;
    

    应该是你的播放器还没准备好,你就start了

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料