`
chenguandong
  • 浏览: 16863 次
社区版块
存档分类
最新评论

android SurfaceView 视频播放器

 
阅读更多
package com.forcetech.android.hotel;


import java.net.URL;


import android.app.Activity;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewTreeObserver.OnTouchModeChangeListener;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;


public class FullScreenActivity extends Activity implements SurfaceHolder.Callback{
private MediaPlayer mediaPlayer;
private SurfaceView surfaceView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
setContentView(R.layout.fullscreen);
super.onCreate(savedInstanceState);
surfaceView = (SurfaceView)findViewById(R.id.surfaceView);
mediaPlayer = new MediaPlayer();
surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
surfaceView.getHolder().setFixedSize(500, 500);

surfaceView.getHolder().setKeepScreenOn(true);


surfaceView.getHolder().addCallback(this);


}

@Override
public boolean dispatchKeyEvent(KeyEvent event) {

startActivity(new Intent(FullScreenActivity.this, HotelActivity.class));
return super.dispatchKeyEvent(event);
}
private void play(int position) {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource("http://f3.3g.56.com/15/15/JGfMspPbHtzoqpzseFTPGUsKCEqMXFTW_smooth.3gp");
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDisplay(surfaceView.getHolder());
mediaPlayer.setScreenOnWhilePlaying(true);
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mediaPlayer.start();
Toast.makeText(FullScreenActivity.this, "开始播放", 2).show();
}
});


} catch (Exception e) {
e.printStackTrace();
}
}




@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
play(0);

}




@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub

}


@Override
protected void onPause() {
if(mediaPlayer.isPlaying()){
mediaPlayer.stop();
mediaPlayer.release();
}
super.onPause();
}


}
分享到:
评论

相关推荐

    Android下使用SurfaceView播放视频文件

    当视频播放器(如MediaPlayer)与Surface关联时,它会直接将视频帧绘制到Surface上。 2. **Holder**: 是SurfaceView的一个接口,提供了对Surface的访问和控制。我们可以通过Holder来监听Surface的状态变化,例如...

    android 在线视频播放器实现方法

    通过使用 Android SDK 提供的 MediaPlayer 类和 SurfaceView 类,可以实现在线视频播放器的功能。 1. Android 在线视频播放器实现方法的 significance 在当今的移动设备时代,在线视频播放器已经成为移动应用程序...

    Android Studio视频播放器 源码.rar

    总结来说,"Android Studio视频播放器 源码"包含了许多关键知识点,如`MediaPlayer`或ExoPlayer的使用、SurfaceView和TextureView的视频渲染、网络请求、UI交互以及多媒体文件的兼容性处理。通过学习和分析这份源码...

    Anddroid视频播放器(SurfaceView)

    综上所述,创建一个基于SurfaceView的Android视频播放器涉及到SurfaceView和MediaPlayer的使用,以及进度条的实现。通过合理的代码组织和事件处理,可以构建出一个简洁而实用的视频播放器应用。在实际项目中,还可以...

    android 视频播放器 项目和原码

    在Android平台上,开发一款视频播放器是一项常见的任务,它涉及到多媒体处理、用户界面设计和性能优化等多个技术领域。本项目提供了完整的源码,是学习和理解Android视频播放器开发的宝贵资源。 首先,我们来深入...

    android surfaceview 播放视频

    下面将详细阐述如何使用SurfaceView来播放视频,并扩展制作成视频播放器。 首先,我们需要理解SurfaceView的工作原理。SurfaceView创建了一个独立的显示表面,这个表面位于应用窗口之上,与应用程序主线程分离,...

    Android 简单视频播放器

    在Android开发中,创建一个简单的视频播放器是常见的需求,尤其对于移动应用来说,能够处理本地和网络视频的播放功能至关重要。本项目“Android简单视频播放器”旨在提供这样一个解决方案,支持本地视频播放、URL流...

    SurfaceView增加放大缩小视频功能

    在Android开发中,`SurfaceView` 是一个非常重要的视图组件,主要用于处理视频播放、游戏图形等高性能的图像渲染任务。`SurfaceView` 提供了一个独立的绘图表面,可以与应用程序主线程分离,从而避免UI阻塞,提高...

    android视频播放器SurfaceView

    一个播放本地视频的播放器,可供使用和学习。 实现功能: 1、搜索制定目录下的本地视频,并显示缩略图及视频名称在列表上;2、点击播放指定视频或按顺序播放全部视频;3、包括进度条,播放和暂停键,时间显示等控件...

    android MediaPlayer+SurfaceView实现播放

    本篇文章将详细讲解如何利用这两个组件来构建一个视频播放器。 首先,`MediaPlayer` 是Android系统提供的媒体播放类,它可以处理音频、视频等多种媒体格式。它的核心功能包括加载媒体资源、控制播放状态(如播放、...

    Android SurfaceView添加组件view不被组件覆盖-IT计算机-毕业设计.zip

    在Android开发中,SurfaceView是一种特殊的视图,它允许开发者在应用程序中创建高性能的图形界面,比如游戏或者视频播放器。SurfaceView具有自己的绘制表面,与主线程分离,因此可以进行独立于UI线程的高性能渲染。...

    SurfaceView和MediaPlayer打造简易的播放器

    在Android开发中,创建一个简易的视频播放器是常见的需求,而`SurfaceView`和`MediaPlayer`正是实现这一功能的关键组件。本篇文章将深入探讨如何利用这两个组件来打造一个基本的视频播放器。 首先,`SurfaceView`是...

    MediaPlayer+SurfaceView+视频播放器

    Android 入门视频播放器一般采用封装好的VideoView或MediaPlayer+SurfaceView两种类型,其中VideoView高度封装并不适合深入了解其中原理,下面利用SurfaceView+MediaPlay实现一个简单的视频播放器

    android网络视频播放器(完整可运行).zip

    本篇将详细讲解基于Android平台的网络视频播放器的开发知识,涵盖源码分析、论文参考、技术选型以及学习路径,旨在为Android开发爱好者提供宝贵的实践经验和理论支持。 一、项目概述 "android网络视频播放器(完整...

    Android开源视频播放器

    在Android平台上,开发一款开源视频播放器是一项技术性极强的工作。这涉及到多媒体处理、硬件解码、用户界面设计等多个方面。在这个过程中,你需要掌握以下几个关键知识点: 1. **多媒体框架**:Android提供了...

    android网络视频播放器源代码

    【Android网络视频播放器源代码】是一个用于在Android设备上实现网络视频播放功能的应用程序的源码。这个源码在2014年被创建,旨在提供一个可以直接使用的解决方案,同时也为开发者提供了一个学习和研究的平台。通过...

    android 自定义视频播放器之本地播放

    在Android开发中,自定义视频播放器是提升用户体验和实现特定功能的重要手段。本地播放功能则是用户最常见的需求之一,能够支持用户在设备上播放存储的视频文件。本篇将深入探讨如何在Android中构建一个自定义的本地...

    Android SurfaceView使用Demo

    `SurfaceView` 是 Android 系统提供的一种特殊的视图组件,它允许开发者在应用程序中创建高性能的图形界面,比如游戏、视频播放器等需要连续更新图像的应用。`SurfaceView` 提供了一个独立于应用程序主线程的绘制...

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

    在Android平台上,开发一个完整的视频播放器涉及到许多关键知识点,这些知识点构成了Android应用源码的基础。这个"Android应用源码之完整版android视频播放器"的压缩包很可能包含了一个功能完善的视频播放应用的所有...

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

    在Android平台上开发一款支持横竖屏切换的视频播放器是一项常见的任务,这涉及到对Android多媒体框架的深入理解和屏幕适配策略。"Android视频播放器(支持横竖屏切换)"这个项目的核心目标是创建一个能够根据设备...

Global site tag (gtag.js) - Google Analytics