视频播放器MP4的简单实现

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

截图:



其实视频播放器的实现与音乐播放器的实现没有太大的区别。主要体现在:

1)main.xml

增加了<ImageView />(用来显示图片按钮)、<SurfaceView />(用来作为屏幕)


2)MainActivity

其实大部分还是一样的。只是在MP3音乐播放器的基础上早合适的位置上增加了以下:

SurfaceHolder holder = surfaceView.getHolder();  holder.setFixedSize(176, 144);//设置分辨率  holder.setKeepScreenOn(true);//保持屏幕高亮  holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);//不维持缓冲,得到数据后直接输出

mp.setDisplay(surfaceView.getHolder());//设置显示画面



代码如下:

1、main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"     android:background="@android:color/white">        <TextView         android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="女神牌mp4视频播放器"        />        <EditText         android:id="@+id/et_name"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="oppo.mp4"        />        <LinearLayout         android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:orientation="horizontal"        >                <ImageView             android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@drawable/play"            android:onClick="play"            android:layout_marginRight="10dp"            />                <ImageView             android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@drawable/pause"            android:onClick="pause"            android:layout_marginRight="10dp"            />                        <ImageView             android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@drawable/stop"            android:onClick="stop"            android:layout_marginRight="10dp"            />                <ImageView             android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@drawable/reset"            android:onClick="reset"            android:layout_marginRight="10dp"            />    </LinearLayout>        <SurfaceView         android:id="@+id/sv_info"        android:layout_width="fill_parent"        android:layout_height="224dp"        /></LinearLayout>


2、MainActivity

package com.NJUPT.mp4_1;import java.io.File;import android.media.MediaPlayer;import android.media.MediaPlayer.OnPreparedListener;import android.os.Bundle;import android.os.Environment;import android.app.Activity;import android.view.Menu;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity private MediaPlayer mp; private File file; private EditText et_name; private boolean pause; private int position = 0private SurfaceView surfaceView; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  et_name = (EditText) findViewById(R.id.et_name);  surfaceView = (SurfaceView) findViewById(R.id.sv_info);  SurfaceHolder holder = surfaceView.getHolder();  holder.setFixedSize(176, 144);  holder.setKeepScreenOn(true);  holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public void play(View v) {  String name = et_name.getText().toString();  file = new File(Environment.getExternalStorageDirectory(), name);  if (!file.exists()) {   Toast.makeText(this, "sorry,视频文件不存在", 1).show();  } else {   play();  } } public void play() {  try {   mp = new MediaPlayer();   mp.reset();   mp.setDataSource(file.getAbsolutePath());   mp.setDisplay(surfaceView.getHolder());   mp.prepare();   mp.setOnPreparedListener(new MyOnPrepareListener());  } catch (Exception e) {   e.printStackTrace();  } } private class MyOnPrepareListener implements OnPreparedListener {  @Override  public void onPrepared(MediaPlayer mp) {   mp.start();  } } public void pause(View v) {  if (mp != null) {   if (mp.isPlaying()) {    mp.pause();    pause = true;   } else {    mp.start();    pause = false;   }  } } public void stop(View v) {  if (mp != null) {   mp.stop();  } } public void reset(View v) {  stop(v);  play(); } @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; }}

源代码下载地址为:

http://download.csdn.net/detail/caihongshijie6/6285127

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
最最最重要提示: 1.对于部分用户说用不了的,请注意,本播放器为新写的结构,请确保配置文件,图片文件的地址是正确的; 2.请确保你自己的服务器支持mp4的mime类型。 在此前提下,播放器将100%正常运行。 酷播迷你CuPlayerMiniV4.1 重要功能更新说明( 2013-7-5更新 ): 1. 重写播放器基础架构; 2. 修改播放器双击全屏功能; 3. 修改显示视频略缩图功能; 4. 支持flv,mp4,mov,f4v,3gp等视频格式; 5. 优化视频比例问题; 6. 新增配置文件功能,此功能将实现与asp,php,jsp,aspx程序更完美的结合; 7. 支持双重参数功能,可适合普通用户和程序人员使用; 8. 更加人性化的播放体验; 9. 支持FlashVars调用html代码中的参数; 10. 支持自动播放/点击播放; 11. 显示播放进度条,带预加载,支持拖动播放进度条; 12. 显示视频总时长和当前播放进度的位置时间; 13. 支持音量控制; 14. 支持列表连播参数getNext,调用时直接在html中添加js的getNext函数即可; 15. 可以与动易、织梦、帝国等各类CMS系统结合,实现与此类CMS系统后台的融合 参数名称 数据类型 参数描述 备注 CuPlayerSetFile String 配置文件地址 支持 .xml / .asp / .php / .aspx /. jsp 格式配置文件 CuPlayerFile String 视频文件地址 支持flv,mp4,mov,f4v,3gp格式视频文件 CuPlayerImage String 视频缩图 支持jpg,png,gif , 必须存在,否则将影响正常播放 CuPlayerWidth Number 播放器宽度 宽度值为像素 CuPlayerHeight Number 播放器高度 宽度值为像素 CuPlayerAutoPlay String 是否自动播放 值为yes / no CuPlayerLogo String 用户Logo文件地址 推荐.png,支持jpg,png,gif CuPlayerPosition String 用户Logo显示的位置 值为top-right / top-left / bottom-left / bottom-right 右上角/左上角/左下角/右下角
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值