`

视频的播放

 
阅读更多

1.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="wyf.ytl.MainActivity" >

    <SurfaceView
        android:id="@+id/surfaceView"
        android:layout_width="212dp"
        android:layout_height="180dp" />
  <!-- add a surface view to play video -->
        
   <LinearLayout 
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       >
       <Button 
           android:id="@+id/play2_button"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="PLAY"
           />
       <Button 
           android:id="@+id/pause2_button"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="PAUSE"
           />
       
   </LinearLayout>   
   
</LinearLayout>

 

2.

package wyf.ytl;

import android.graphics.PixelFormat;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

import com.example.sample_2_11.R;

public class MainActivity extends ActionBarActivity implements OnClickListener,
		SurfaceHolder.Callback {

	String path = "/sdcard/VideoCache/anim.mp4";
	Button mPlayButton;
	Button mPauseButton;
	boolean isPause = false;
	SurfaceHolder mSurfaceHolder;
	MediaPlayer mediaPlay;
	SurfaceView mSurfaceView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		mPlayButton = (Button) findViewById(R.id.play2_button);
		mPlayButton.setOnClickListener(this);
		mPauseButton = (Button) findViewById(R.id.pause2_button);
		mPauseButton.setOnClickListener(this);

		getWindow().setFormat(PixelFormat.UNKNOWN);
		mSurfaceView = (SurfaceView) findViewById(R.id.surfaceView);
		mSurfaceHolder = mSurfaceView.getHolder();
		// add callback
		mSurfaceHolder.addCallback(this);
		mSurfaceHolder.setFixedSize(176, 144);
		mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
		mediaPlay = new MediaPlayer();
	}

	public void playVideo(String path) {
		Log.d("playVideo() ", "playVideo start...");
		
		if (mediaPlay.isPlaying() == true) {
			mediaPlay.reset();
		}
		mediaPlay.setAudioStreamType(AudioManager.STREAM_MUSIC);
		// 设置Videoy影片以SurfaceHolder播放
		mediaPlay.setDisplay(mSurfaceHolder);
		try {
			// 设置路径
			mediaPlay.setDataSource(path);
			mediaPlay.prepare();
		} catch (Exception e) {
			Log.d("playVideo()", "play Video error..." + e.getMessage());
		}
		mediaPlay.start();
	}

	@Override
	public void onClick(View v) {
		int id = v.getId();
		switch (id) {
		case R.id.play2_button:
			Log.d("on click", "click play button...");
			isPause = false;
			playVideo(path);
			break;

		case R.id.pause2_button:
			Log.d("on click", "click pause button...");
			Toast.makeText(this, "click pause", Toast.LENGTH_LONG).show();
			
			if (isPause == false) {
				mediaPlay.pause();
				isPause = true;
			}else{
				mediaPlay.start();
				isPause = false;
			}
			
		   break;
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}

	@Override
	public void surfaceCreated(SurfaceHolder holder) {

	}

	@Override
	public void surfaceChanged(SurfaceHolder holder, int format, int width,
			int height) {

	}

	@Override
	public void surfaceDestroyed(SurfaceHolder holder) {

	}

}

 

分享到:
评论

相关推荐

    视频播放OCX 控件

    《OCX视频播放控件详解:基于MFC的多媒体编程实践》 在计算机软件开发领域,尤其是涉及到多媒体应用时,视频播放控件扮演着至关重要的角色。本文将深入探讨一个基于MFC(Microsoft Foundation Classes)开发的OCX...

    jsp视频播放jsp视频播放代码和实现

    "jsp视频播放"是这个话题的核心,它涉及到如何在网页上实现视频的播放功能。下面我们将详细探讨JSP视频播放的原理、实现方式以及可能涉及的相关技术。 1. **视频播放原理**: 视频播放主要依赖于浏览器支持的视频...

    视频播放 人体感应 红外感应 感应触发视频播放

    "视频播放 人体感应 红外感应 感应触发视频播放"这一主题,涉及了多个关键知识点,包括硬件传感器、软件编程、事件触发机制以及多媒体处理。 1. **人体感应技术**:主要基于人体辐射的红外线进行探测。人体在活动时...

    jsp实现视频播放

    "jsp实现视频播放"这个主题聚焦于如何利用JSP技术来搭建一个在线视频播放平台。在此过程中,我们将讨论以下几个关键知识点: 1. **MIME类型**:视频文件在传输时需要正确指定MIME类型,如"video/mp4"、"video/ogg...

    在线视频播放系统

    在线视频播放系统是一种基于Web技术实现的多媒体服务平台,它允许用户在互联网上浏览、播放、控制视频内容。在这个系统中,我们使用了JSP(JavaServer Pages)和Servlet技术,这两种技术是Java Web开发的核心部分,...

    视频播放网站源码

    【视频播放网站源码】是一种用于在线视频服务的软件开发基础,它允许用户在网页上观看视频内容。在这个特定的案例中,源码是基于微软的Silverlight技术构建的,这是一种已经过时但曾经非常流行的富互联网应用程序...

    Android Studio 视频播放

    本项目专注于Android Studio中的视频播放功能,这在移动应用开发中是一个常见且重要的特性,尤其对于媒体、教育或者娱乐类应用。开源的性质意味着开发者可以查看源代码,学习并自定义视频播放组件。 在Android平台...

    C++实现视频播放

    在C++环境中实现视频播放,通常涉及到多媒体处理和图形用户界面(GUI)的结合。这里主要使用的是Visual Studio 2010作为开发环境,以及OpenCV 2.4.9库来支持视频处理。OpenCV是一个强大的计算机视觉库,其中包含了对...

    WPF 视频播放控件

    在Windows Presentation Foundation(WPF)框架中,开发视频播放功能通常涉及到使用自定义控件或者现有的第三方库。WPF提供了一种丰富的用户界面设计和多媒体处理能力,使得开发者能够创建出具有专业级视频播放功能...

    java网页视频播放

    在Java开发领域,网页视频播放是一项重要的功能,尤其在构建富互联网应用(RIA)时不可或缺。本项目聚焦于在Eclipse环境下集成视频播放插件,为开发者提供了一套完整的源码解决方案,支持视频在网页中的无缝播放。接...

    视频播放+列表

    在IT领域,尤其是Web开发中,"视频播放+列表"是一个常见的需求,它涉及到多媒体处理、前端技术以及用户界面设计等多个方面。在这个场景下,HTML页面是实现这一功能的基础平台,我们将围绕这些关键词来深入探讨相关...

    listview列表视频播放,支持全屏,上滑暂停播放等

    当涉及到在ListView中集成视频播放功能时,开发者需要处理一系列技术问题,比如如何实现流畅的滚动、视频的自动暂停与恢复,以及全屏模式的切换。在这个项目中,"listview列表视频播放,支持全屏,上滑暂停播放等",...

    .net 视频播放插件

    《.NET视频播放插件深度解析与应用》 在当今数字化时代,视频内容已经成为网络信息传播的重要载体。在Web开发中,实现流畅的视频播放功能是必不可少的。本文将聚焦于.NET框架下的视频播放插件,特别关注如何在项目...

    unity 全景视频播放例子

    "unity 全景视频播放例子"这个项目旨在展示如何在Unity中实现360度或全息视频的播放。下面我们将详细探讨相关的知识点。 1. **全景视频基础**: 全景视频是一种捕捉并显示全方位视图的视频形式,允许观众通过移动...

    超好用的Unity视频播放插件:支持多平台、多种视频格式

    最近在研究Unity视频播放。虽然可以实现简单的视频播放功能,但是对于商业化或者移动端的项目来说远远不够(比如:当文件较大时,会出现明显的卡顿)。 网上找了好多资料,试了好多插件,综合比较下来,AVPro Video...

    大华视频播放插件及demo

    在IT行业中,视频播放技术是不可或缺的一部分,尤其是在监控系统领域。大华作为知名的安防设备供应商,提供了专门的视频播放插件以支持其设备的高效、流畅的视频播放体验。在这个“大华视频播放插件及demo”中,我们...

    基于java的开发源码-实现的视频播放程序源码.zip

    基于java的开发源码-实现的视频播放程序源码.zip 基于java的开发源码-实现的视频播放程序源码.zip 基于java的开发源码-实现的视频播放程序源码.zip 基于java的开发源码-实现的视频播放程序源码.zip 基于java的开发...

    Java实现的视频播放程序源码

    Java实现的视频播放程序源码是一个典型的多媒体应用开发案例,主要涉及了Java编程语言、音视频处理技术以及软件工程的一些核心概念。以下是对这个项目的一些关键知识点的详细说明: 1. **Java编程语言**:Java是一...

    昆仑通泰触摸屏McgsPro_视频播放构件_V2.1_20200608.rar

    【昆仑通泰触摸屏McgsPro视频播放构件V2.1】是一款专为G系列屏设计的组件,用于在昆仑通泰的触摸屏上实现视频监控功能。此组件的版本号为20200608,适用于1570Gi等型号的设备。在使用该组件时,必须确保配合McgsPro ...

    右下角播放弹出视频播放窗口

    标题中的“右下角播放弹出视频播放窗口”是指一种常见的网页视频播放设计,它允许用户在不离开当前页面的情况下,在屏幕右下角弹出一个小型的浮动窗口来播放视频内容。这种设计常用于新闻网站、社交媒体平台或者在线...

Global site tag (gtag.js) - Google Analytics