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视频播放控件详解:基于MFC的多媒体编程实践》 在计算机软件开发领域,尤其是涉及到多媒体应用时,视频播放控件扮演着至关重要的角色。本文将深入探讨一个基于MFC(Microsoft Foundation Classes)开发的OCX...
"jsp视频播放"是这个话题的核心,它涉及到如何在网页上实现视频的播放功能。下面我们将详细探讨JSP视频播放的原理、实现方式以及可能涉及的相关技术。 1. **视频播放原理**: 视频播放主要依赖于浏览器支持的视频...
"视频播放 人体感应 红外感应 感应触发视频播放"这一主题,涉及了多个关键知识点,包括硬件传感器、软件编程、事件触发机制以及多媒体处理。 1. **人体感应技术**:主要基于人体辐射的红外线进行探测。人体在活动时...
"jsp实现视频播放"这个主题聚焦于如何利用JSP技术来搭建一个在线视频播放平台。在此过程中,我们将讨论以下几个关键知识点: 1. **MIME类型**:视频文件在传输时需要正确指定MIME类型,如"video/mp4"、"video/ogg...
在线视频播放系统是一种基于Web技术实现的多媒体服务平台,它允许用户在互联网上浏览、播放、控制视频内容。在这个系统中,我们使用了JSP(JavaServer Pages)和Servlet技术,这两种技术是Java Web开发的核心部分,...
【视频播放网站源码】是一种用于在线视频服务的软件开发基础,它允许用户在网页上观看视频内容。在这个特定的案例中,源码是基于微软的Silverlight技术构建的,这是一种已经过时但曾经非常流行的富互联网应用程序...
本项目专注于Android Studio中的视频播放功能,这在移动应用开发中是一个常见且重要的特性,尤其对于媒体、教育或者娱乐类应用。开源的性质意味着开发者可以查看源代码,学习并自定义视频播放组件。 在Android平台...
在C++环境中实现视频播放,通常涉及到多媒体处理和图形用户界面(GUI)的结合。这里主要使用的是Visual Studio 2010作为开发环境,以及OpenCV 2.4.9库来支持视频处理。OpenCV是一个强大的计算机视觉库,其中包含了对...
在Windows Presentation Foundation(WPF)框架中,开发视频播放功能通常涉及到使用自定义控件或者现有的第三方库。WPF提供了一种丰富的用户界面设计和多媒体处理能力,使得开发者能够创建出具有专业级视频播放功能...
在Java开发领域,网页视频播放是一项重要的功能,尤其在构建富互联网应用(RIA)时不可或缺。本项目聚焦于在Eclipse环境下集成视频播放插件,为开发者提供了一套完整的源码解决方案,支持视频在网页中的无缝播放。接...
在IT领域,尤其是Web开发中,"视频播放+列表"是一个常见的需求,它涉及到多媒体处理、前端技术以及用户界面设计等多个方面。在这个场景下,HTML页面是实现这一功能的基础平台,我们将围绕这些关键词来深入探讨相关...
当涉及到在ListView中集成视频播放功能时,开发者需要处理一系列技术问题,比如如何实现流畅的滚动、视频的自动暂停与恢复,以及全屏模式的切换。在这个项目中,"listview列表视频播放,支持全屏,上滑暂停播放等",...
《.NET视频播放插件深度解析与应用》 在当今数字化时代,视频内容已经成为网络信息传播的重要载体。在Web开发中,实现流畅的视频播放功能是必不可少的。本文将聚焦于.NET框架下的视频播放插件,特别关注如何在项目...
"unity 全景视频播放例子"这个项目旨在展示如何在Unity中实现360度或全息视频的播放。下面我们将详细探讨相关的知识点。 1. **全景视频基础**: 全景视频是一种捕捉并显示全方位视图的视频形式,允许观众通过移动...
最近在研究Unity视频播放。虽然可以实现简单的视频播放功能,但是对于商业化或者移动端的项目来说远远不够(比如:当文件较大时,会出现明显的卡顿)。 网上找了好多资料,试了好多插件,综合比较下来,AVPro Video...
在IT行业中,视频播放技术是不可或缺的一部分,尤其是在监控系统领域。大华作为知名的安防设备供应商,提供了专门的视频播放插件以支持其设备的高效、流畅的视频播放体验。在这个“大华视频播放插件及demo”中,我们...
基于java的开发源码-实现的视频播放程序源码.zip 基于java的开发源码-实现的视频播放程序源码.zip 基于java的开发源码-实现的视频播放程序源码.zip 基于java的开发源码-实现的视频播放程序源码.zip 基于java的开发...
Java实现的视频播放程序源码是一个典型的多媒体应用开发案例,主要涉及了Java编程语言、音视频处理技术以及软件工程的一些核心概念。以下是对这个项目的一些关键知识点的详细说明: 1. **Java编程语言**:Java是一...
【昆仑通泰触摸屏McgsPro视频播放构件V2.1】是一款专为G系列屏设计的组件,用于在昆仑通泰的触摸屏上实现视频监控功能。此组件的版本号为20200608,适用于1570Gi等型号的设备。在使用该组件时,必须确保配合McgsPro ...
标题中的“右下角播放弹出视频播放窗口”是指一种常见的网页视频播放设计,它允许用户在不离开当前页面的情况下,在屏幕右下角弹出一个小型的浮动窗口来播放视频内容。这种设计常用于新闻网站、社交媒体平台或者在线...