- 浏览: 199193 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
guoshijie1990:
写的不错
Android Https通信 -
xiaochi_84:
你好,我想问一下。为什么我在java工程里测试没有问题。但是到 ...
Android导出xls文件 -
Visual_chenpeng:
Android Https通信 -
jasonpeak:
求jasonpeak 写道我的为什么按返回键还是不关闭呢?求破 ...
Android关于ProgressDialog按返回键关闭 -
jasonpeak:
我的为什么按返回键还是不关闭呢?
Android关于ProgressDialog按返回键关闭
视频播放优好多种,一种是播放系统可以播放的视频文件,一种是播放动态码流,前一种比较简单,后一种需要对视频进行解码,然后才能播放,今天就先写上前一种,后一种需要Jni进行AndroidNDK编程
android有两个组建可以用来观看视频,一个是VideoView一个是SurfaceView;
用VideoView观看视频:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <VideoView android:id="@+id/video" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
源代码:
public class VideoTestActivity extends Activity { /** Called when the activity is first created. */ private VideoView videoView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findID(); } private void findID() { videoView = (VideoView) findViewById(R.id.video); // videoView.setVideoPath(Environment.getExternalStorageDirectory()+"/moto_0012.3gp");//本地资源 videoView.setVideoURI(Uri .parse("http://172.16.108.151/video/test1.mp4"));// 网络资源 videoView .setMediaController(new MediaController(VideoTestActivity.this));// 设置模式,播放进度条 videoView.requestFocus(); videoView.start(); } }
用SurfaceView播放
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <SurfaceView android:id="@+id/surfaceView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"> </SurfaceView> </LinearLayout>
Java代码
package com.Aina.Android; import android.app.Activity; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.MediaPlayer.OnBufferingUpdateListener; import android.media.MediaPlayer.OnCompletionListener; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; public class Test extends Activity implements OnBufferingUpdateListener, OnCompletionListener, MediaPlayer.OnPreparedListener, SurfaceHolder.Callback { private int width = 0; private int height = 0; private MediaPlayer mMediaPlayer = null; private SurfaceView mSurfaceView = null; private SurfaceHolder holder = null; private String path = ""; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mSurfaceView = (SurfaceView) this.findViewById(R.id.surfaceView); holder = mSurfaceView.getHolder(); holder.addCallback(this); holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);// 设置风格 } public void playVedio() { try { path = android.os.Environment.getExternalStorageDirectory() + "/moto_0012.3gp"; mMediaPlayer = new MediaPlayer(); // mMediaPlayer.setDataSource(path); mMediaPlayer.setDataSource(this, Uri.parse("http://192.168.0.132:8080/mp.mp4")); mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mMediaPlayer.setDisplay(holder); mMediaPlayer.prepare();// 准备 Log.i("TAG-Duration", mMediaPlayer.getDuration()+""); mMediaPlayer.setOnBufferingUpdateListener(this); mMediaPlayer.setOnCompletionListener(this); mMediaPlayer.setOnPreparedListener(this); } catch (Exception ex) { } } public void onBufferingUpdate(MediaPlayer mp, int percent) { // TODO Auto-generated method stub Log.i("TAG-onBufferingUpdate", percent+"|"+mMediaPlayer.getCurrentPosition()); } public void onCompletion(MediaPlayer mp) { // TODO Auto-generated method stub Log.i("TAG-onCompletion", "Completion"); } public void onPrepared(MediaPlayer mp) { // TODO Auto-generated method stub width = mMediaPlayer.getVideoWidth(); height = mMediaPlayer.getVideoHeight(); if(width !=0 && height !=0){ holder.setFixedSize(width, height);//设置视频高宽 mMediaPlayer.start(); Log.i("TAG-Duration2", mMediaPlayer.getDuration()+""); } } public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // TODO Auto-generated method stub } public void surfaceCreated(SurfaceHolder holder) { // TODO Auto-generated method stub playVedio(); } public void surfaceDestroyed(SurfaceHolder holder) { // TODO Auto-generated method stub Log.i("TAG-surfaceDestroyed", "surfaceDestroyed"); } @Override protected void onPause() { super.onPause(); if(mMediaPlayer != null){ if(mMediaPlayer.isPlaying()){ mMediaPlayer.stop(); } mMediaPlayer.reset(); mMediaPlayer.release(); mMediaPlayer = null; } } }
评论
2 楼
f839903061
2012-08-01
playVedio()方法在哪里调用了?我在create()方法中调用依然没显示画面!
1 楼
f839903061
2012-08-01
我用surfaceview播放动画没有显示出画面!
发表评论
-
Android获取设备信息
2012-11-22 00:10 1385转http://blog.csdn.net/gumanr ... -
Android列表索引实现
2012-07-15 10:47 6683最近做一个项目用到了列表索引,所以在网上找了一下,发现一个博客 ... -
Android开发环境搭建(Windows)
2012-07-03 13:37 788什么都不说来,直接下载附件好了,这个图文的不好发布 -
Linux下Android环境搭建
2012-07-03 13:34 1231--以Ubuntu为例 Linux下Android环境 ... -
Android ListView 滑动背景为黑色的解决办法
2012-06-28 22:08 1066转至:http://blog.163.com/zh ... -
Android蓝牙开发
2012-06-26 15:38 1513今天查了一些资料,然后发现一篇文章挺好,关于蓝牙的,原文网址: ... -
Android自定义对话框
2012-06-22 11:36 2495这时我封装的一个对话框工具类 package com. ... -
Android语音采集
2012-06-18 10:55 15569Android端的语音采集主要是调用AudioRecord,首 ... -
Android语音识别
2012-06-18 09:28 2270Android由于有了Google的支持,那么他的语音识别做起 ... -
Android监控
2012-06-08 20:04 1491Android的监控一般都是需要用到Jni的,然后进行NDK编 ... -
重写android返回键
2012-05-24 19:23 21907在Activity里面加入下面代码: @Overrid ... -
Android图像处理工具类
2012-04-09 09:37 2516还是最近整理代码、、发现了一个师兄写的图片工具类,感觉还是蛮有 ... -
Android导出xls文件
2012-04-08 15:45 6603整理硬盘的时候找到了这些代码,看了一下,发现还有点用处,所以就 ... -
android的文字跑马灯效果
2012-04-03 21:04 7305今天问了解决文本内容过长的显示问题,而用了一个android自 ... -
Android超级简单的TabView实现
2012-04-03 20:56 7168可能很多人都有想要实现一个导航栏,但是不知道改怎么弄,因为an ... -
ImageView的属性android:scaleType
2012-04-03 20:04 2049ImageView的属性android:scaleType ... -
关于Android程序的全屏显示
2012-04-03 19:53 1006对于Android开发来说,全屏和无标题是我们常用的几行代码, ... -
Android文件下载
2012-03-19 16:45 1365嘿嘿,也不知道什么时候写的代码,清理硬盘的时候发现了,而且还能 ... -
Android视图的截图
2012-03-19 16:38 6893在pc上的截图软件很多,但是android上的比较少,所以就自 ... -
Android短信批量删除效果
2012-03-19 16:38 3595前段时间在做一个项目的后期维护时,对方提出了把短信做成可以批量 ...
相关推荐
Umi-OCR-main.zip
基于springboot+Web的毕业设计选题系统源码数据库文档.zip
基于springboot校外兼职教师考勤管理系统源码数据库文档.zip
58商铺全新UI试客试用平台网站源码
基于springboot大学生就业信息管理系统源码数据库文档.zip
基于SpringBoot的口腔诊所系统源码数据库文档.zip
数据存放网盘,txt文件内包含下载链接及提取码,永久有效。失效会第一时间进行补充。样例数据及详细介绍参见文章:https://blog.csdn.net/T0620514/article/details/143956923
3-240P2162218.zip
网络安全 基于Qt创建的Linux系统下的浏览器.zip
C++ 类和对象:多态-练习题目2(制作咖啡和茶叶)
基于springboot+J2EE在线项目管理与任务分配中的应用源码数据库文档.zip
简介本项目提供了一个在51单片机上运行的简单操作系统,旨在帮助学习者深入理解操作系统的基本原理和任务调度机制。该操作系统通过汇编和C语言编写,实现了任务调度、中断处理等核心功能,并提供了详细的源代码和注释,方便学习和实践。
本文将深度卷积神经网络(CNN)设计实现一个复杂结构的生成模型,旨在通过多阶段的编码器-解码器结构,能够有效地将灰度图像转换为彩色图像。最后,本文将实现一个简单的Web应用,用户可以通过上传灰度图像,应用会使用预训练的Caffe模型对其进行颜色化,并将结果返回给用户。 1.模型设计:模型由多个卷积层、ReLU激活函数和批归一化层组成,通过前向传播函数将输入的灰度图像(L通道)转换为彩色图像(ab通道)。如果指定了 pretrained=True,则会自动下载并加载预训练的模型权重。 2. 系统通过Flask框架提供了一个Web应用,用户可以上传灰度图像,系统会自动将其转换为彩色图像,并在网页上显示结果。整个过程包括文件验证、图像处理、颜色化预测和结果展示,具有较高的实用性和用户体验。
一个JAVA图形化的、联网的五子棋游戏.zip javaweb
KWDB 是一款面向 【AIoT 场景】的【分布式多模数据库】,支持在同一实例同时建立时序库和关系库并融合处理多模数据,具备千万级设备接入、百万级数据秒级写入、亿级数据秒级读取等时序数据高效处理能力,具有稳定安全、高可用、易运维等特点。
页面数量:7页 网页主题:网站模板、酒店网站模板、官方网站模板 网页页面:首页、关于我们、相关服务、服务详情、在线博客、博客详情、在线留言 页面实现元素:加载动画、滚动加载、主题切换、导航栏 、轮播图、图文列表、图片切换、 文字列表、 按钮悬停、图片悬停、表单 实现技术:HTML、CSS 、JQuery 源码样式及js文件均分开存放,所有内容仅供初学者学习参考
内容概要:本文档提供了详细的 Neo4j 安装与配置指南,涵盖 Windows、Linux 和 Mac 系统的安装步骤。具体包括下载、安装、启动服务、修改配置文件(如端口配置、远程访问和内存限制)、设置管理员密码以及基本的 Cypher 查询语言使用方法。同时,还提供了一些常见问题及其解决方案。 适合人群:数据库管理员、软件开发人员、系统管理员。 使用场景及目标:①帮助初学者快速掌握 Neo4j 的安装与配置;②适用于需要搭建和使用图数据库的项目;③为已有用户解决常见问题。 其他说明:本文档不仅包含了基础的安装和配置流程,还提供了实际操作中可能遇到的问题及其解决方法,有助于提高使用者的实际操作能力。
基于SpringBoot+Vue的软件产品展示销售系统源码数据库文档.zip
《书戴嵩画牛》教学课件.pptx
20届智能车 【项目资源】:包含前端、后端、移动开发、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源,毕业设计等各种技术项目的源码。包括C++、Java、python、web、C#、EDA等项目的源码。 【适用人群】:适用于希望学习不同技术领域的初学者或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。