`

android 视频播放器

阅读更多
public class VideoActivity extends Activity {
private static final String TAG = "VideoActivity";
private EditText filenameText;
private SurfaceView surfaceView;
private MediaPlayer mediaPlayer;
@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  ButtonClickListener listener = new ButtonClickListener();
  ImageButton playButton = (ImageButton) this.findViewById(R.id.play);
  playButton.setOnClickListener(listener);
  ImageButton pauseButton = (ImageButton) this.findViewById(R.id.pause);
  pauseButton.setOnClickListener(listener);
  ImageButton resetButton = (ImageButton) this.findViewById(R.id.reset);
  resetButton.setOnClickListener(listener);
  ImageButton stopButton = (ImageButton) this.findViewById(R.id.stop);
  stopButton.setOnClickListener(listener);
  // 重点 这个地方需要设置回调函数  继承Callback 类实现三个方法
  surfaceView.getHolder().addCallback(new myCallback());
  filenameText = (EditText) this.findViewById(R.id.filename);
  surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
  surfaceView.getHolder() .setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
  // 设置这个大小
  surfaceView.getHolder().setFixedSize(176, 144);
  mediaPlayer = new MediaPlayer();
}
private class myCallback implements android.view.SurfaceHolder.Callback {
  @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
  }
}
// 当来电话的时候需要停掉播放业务
@Override
protected void onPause() {
  if (mediaPlayer.isPlaying())
   mediaPlayer.pause();
  super.onPause();
}
@Override
protected void onResume() {
  if (mediaPlayer.isPlaying())
   mediaPlayer.pause();
  super.onResume();
}
@Override
protected void onDestroy() {
  if (mediaPlayer.isPlaying())
   mediaPlayer.stop();
  // 注意这个地方是释放
  mediaPlayer.release();
  super.onStop();
}
private class ButtonClickListener implements View.OnClickListener {
  @Override
  public void onClick(View v) {
   try {
    String filename = filenameText.getText().toString();
    switch (v.getId()) {
    case R.id.play:
     // 得到文件名称 重点代码
     String filenames = filenameText.getText().toString();
     // 第一步对给对象进行重设
     mediaPlayer.reset();
     // 设置流的类型 关键代码
     mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
     // 设置数据来源
     mediaPlayer.setDataSource("/sdcard/" + filenames); // 设置需要播放的视频
     // 把视频输出到显示控件上 重点代码
     mediaPlayer.setDisplay(surfaceView.getHolder());
     // 播放时前需要缓冲一下
     mediaPlayer.prepare();
     mediaPlayer.start();
     break;
    case R.id.pause:
     if (mediaPlayer.isPlaying()) {
      mediaPlayer.pause();
     } else {
      mediaPlayer.start();
     }
     break;
    case R.id.reset:
     if (!mediaPlayer.isPlaying()) {
      mediaPlayer.start();
     }
     // 跳回到起始的地方重新播放
     mediaPlayer.seekTo(0);
     break;
    case R.id.stop:
     if (mediaPlayer.isPlaying()) {
      mediaPlayer.stop();
     }
     break;
    }
   } catch (Exception e) {
    Log.e(TAG, e.toString());
   }
  }
}
}
分享到:
评论

相关推荐

    android 视频播放器 项目和原码

    本项目提供了完整的源码,是学习和理解Android视频播放器开发的宝贵资源。 首先,我们来深入了解一下Android视频播放器的核心功能和技术要点: 1. **多媒体框架**:Android系统内置了MediaPlayer类,它是处理音频...

    Android应用源码之完整版android视频播放器.rar

    这个"Android应用源码之完整版android视频播放器"的压缩包很可能包含了一个功能完善的视频播放应用的所有源代码,这为我们深入学习和理解Android视频处理提供了宝贵的资源。 首先,我们来探讨视频播放器的核心组成...

    android 视频播放器完整源码

    【工控老马出品,必属精品,亲测校正,质量保证...资源名:android 视频播放器完整源码 资源类型:程序源代码 源码说明: android 视频播放器完整源码 亲测校正过的 可编译运行 适合人群:新手及有一定经验的开发人员

    Android视频播放器(支持横竖屏切换)

    "Android视频播放器(支持横竖屏切换)"这个项目的核心目标是创建一个能够根据设备方向变化自动调整布局,并保持视频播放连续性的应用。以下是一些关键知识点: 1. **Android多媒体框架**:Android提供了多种API来...

    android 视频播放器源代码

    10. **源码学习:** 分析提供的源代码,可以深入理解Android视频播放器的实现细节,如如何初始化`MediaPlayer`,如何处理视频的暂停和恢复,以及如何在后台保持播放状态等。 通过以上知识点的学习和实践,开发者...

    Android视频播放器Java源码注释详细

    本文将详细解析一个基于Java的Android视频播放器源码,旨在帮助开发者理解和实现自己的视频播放功能。 首先,让我们了解Android视频播放的基础。Android系统提供了一个名为`MediaPlayer`的内置类,它允许开发者播放...

    Android 视频播放器源码

    二、Android视频播放器框架 1. MediaPlayer:这是Android系统提供的基本播放器组件,用于播放本地或网络上的媒体文件。它可以处理各种编码格式,但其功能相对有限,不支持复杂的视频处理,如自定义渲染器、多音轨...

    Android视频播放器

    Android视频播放器的实现涉及到多个技术层面,包括媒体框架、视频解码、流媒体支持以及用户界面设计。这里我们将深入探讨这些关键知识点。 首先,Android的媒体框架是构建视频播放器的基础。它提供了MediaPlayer类...

    Android视频播放器源码

    本资源提供了“Android视频播放器”的源码,对于想要深入理解Android视频播放器开发的开发者来说,这是一个宝贵的参考资料。 首先,我们要明白Android视频播放器的核心功能包括播放本地视频和在线视频。本地视频...

    android视频播放器源码

    "android视频播放器源码"是一个极好的学习资源,它可以帮助开发者掌握如何在Android环境中实现多媒体播放功能。在这个项目中,我们主要会探讨以下几个关键知识点: 1. **媒体框架(Media Framework)**:Android的...

    基于ExoPlayer的Android视频播放器设计源码

    ExoVideoView 是一个基于ExoPlayer的Android视频播放器项目,它提供了灵活、高效的媒体播放解决方案。该项目包含109个文件,其中包括35个png图像文件、30个xml布局和配置文件、24个java源文件。此外,项目还包含了4...

    Android高级应用源码-完整版android视频播放器.rar

    以下将详细解析这个Android视频播放器的核心知识点: 1. **多媒体框架(Media Framework)**:Android系统提供了强大的Media Framework,用于处理音频、视频等多媒体内容。源码中可能会利用`MediaPlayer`或`...

    Android视频播放器Demo

    总之,这个"Android视频播放器Demo"涵盖了Android视频播放的基础和进阶知识点,包括`VideoView`的简单使用和`SurfaceView`+`MediaPlayer`的封装,为开发者提供了一套完整的视频播放解决方案。通过学习和实践这个Demo...

    android 视频播放器源码

    本文将基于"android 视频播放器源码"这个主题,详细解析Android视频播放器的开发过程,核心组件,以及可能遇到的问题。 一、Android视频播放器核心组件 1. MediaPlayer:Android系统提供的原生播放器API,能够处理...

    Android 视频播放器

    对于开发者来说,这是一个极好的学习资源,可以帮助他们深入理解Android视频播放的实现,并在此基础上扩展出更多高级特性,如网络视频播放、流媒体支持、字幕同步等。通过研究"SeeJoPlayer",开发者可以提升自己的...

    Android视频播放器 源码

    本文将深入探讨“Android视频播放器源码”这一主题,重点关注使用VideoView类来实现视频播放。 首先,VideoView是Android SDK提供的一种视图组件,它允许开发者在应用程序中嵌入视频播放功能。VideoView可以加载...

    基于Android视频播放器源码

    "基于Android视频播放器源码"是一个宝贵的资源,它提供了实现视频播放功能的基础框架,适用于各种应用程序。下面我们将深入探讨这个源码中的关键知识点。 首先,Android视频播放器的核心是MediaPlayer类,它是...

Global site tag (gtag.js) - Google Analytics