近日在同事的帮助下,写了一个最简单的播放器apk,当然,是播放视频的,唔,没想到代码量真是少...

package VideoPlayer.norz; import android.app.Activity; import android.graphics.PixelFormat; import android.media.AudioManager; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.MediaController; import android.widget.VideoView; public class main extends Activity { private static final int SHUTDOWN = 0; private static final int OPEN3GP = 1; private static final int OPENMP4 = 2; private static final int OPENAVI = 3; private VideoView video; private MediaController mc; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFormat(PixelFormat.TRANSPARENT); setContentView(R.layout.main); initComponents(); } private void initComponents() { video = (VideoView) findViewById(R.id.VideoView); mc = new MediaController(this); } public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, OPENMP4, 0, R.string.open_mp4); menu.add(0, OPENAVI, 0, R.string.open_avi); menu.add(0, OPEN3GP, 0, R.string.open_3gp); menu.add(0, SHUTDOWN, 0, R.string.shut_down); return true; } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case OPEN3GP: video.setVideoPath("data/test.3gp"); mc.setMediaPlayer(video); video.setMediaController(mc); video.start(); break; case OPENMP4: video.setVideoPath("data/test.mp4"); mc.setMediaPlayer(video); video.setMediaController(mc); video.start(); break; case OPENAVI: video.setVideoPath("data/test.avi"); mc.setMediaPlayer(video); video.setMediaController(mc); video.start(); break; case SHUTDOWN: video.stopPlayback(); this.finish(); break; default: return super.onContextItemSelected(item); } video.requestFocus(); return true; } }

/************** main.xml ******************************/ <?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" > <VideoView android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/VideoView"></VideoView> </LinearLayout> /*************** strings.xml ***************************/ <?xml version="1.0" encoding="utf-8"?> <resources> <string name="open_3gp">打开3gp</string> <string name="app_name">VideoPlayer</string> <string name="shut_down">关闭...</string> <string name="open_mp4">打开MP4</string> <string name="open_avi">打开AVI</string> </resources>

只是java,确实还是不太熟悉...

好了,废话说了这么多,还是来看 3gp的播放流程吧.

MediaPlayerService或者说pvmf以上的流层就不多说了,这些流程网上和书上都有很多描述.(比如说<<Android系统原理及开发要点详解>>).

参照:http://blog.csdn.net/wstarx/archive/2008/12/17/3541458.aspx

如果按照上文到fileformats中去找,会发现没有3gp文件格式?!

.3gp 文件播放初窥相关推荐

  1. html 如何播放3pg文件,3gp是什么格式文件?3gp文件怎么打开/用什么打开?

    3gp文件想必大家都不会陌生,因为在功能机时代3gp几乎称霸了功能机视频平台,那么3gp究竟是什么呢?3gp文件又如何打开呢? 3gp是什么文件 3GP是MP4格式的一种简化版本,减少了储存空间和较低 ...

  2. iOS视频直播初窥:高仿

    效果图 gif1 gif2 由于licecap录制的GIF失帧太严重, 都模糊掉了, 再放两张高清截图 png1 png2 前言 今年三月份,斗鱼获腾讯领投的1亿美元融资的消息被各大平台报道转载,在电 ...

  3. java aspectj_初窥AspectJ

    AspectJ可以说是Java中当之无愧的黑魔法.说它是黑魔法,一方面是因为它很强大,能够解决一些传统编程方法论解决不了的问题,而另一方面,它也相当的晦涩,有着比较陡峭的学习曲线. 本文将带大家探索下 ...

  4. Scrapy 1.4 文档 01 初窥 Scrapy

    初窥 Scrapy Scrapy 是用于抓取网站并提取结构化数据的应用程序框架,其应用非常广泛,如数据挖掘,信息处理或历史存档. 尽管 Scrapy 最初设计用于网络数据采集(web scraping ...

  5. 初窥R(基本说明、获取帮助、工作空间、输入输出、包)

    初窥R(基本说明.获取帮助.工作空间.输入输出.包) 本篇简要介绍使用R的一些基本概念,包括基本说明.获取帮助.工作空间.输入输出,每个知识点中都会通过一个例子来练习. 一.R基本情况说明 1.R是一 ...

  6. Spring Cloud Bus之RabbitMQ初窥

    和Spring Cloud Config一样,我们接下来要聊的Spring Cloud Bus也是微服务架构系统中的必备组件.Spring Cloud Bus可以将分布式系统的节点与轻量级消息代理链接 ...

  7. 【重点】初窥Linux 之 我最常用的20多条命令

    [重点]初窥Linux 之 我最常用的20多条命令 玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我 ...

  8. 初窥Xcode4 -- Xcode4主题样式、快捷键等常用设置

    今天晚上开始使用Xcode4,初窥历程如下. 一.下载安装Xcode4 因为我需要让Xcode4和老版本共存,在安装Xcode4时选择其他安装路径,安装成功后在xcode4安装目录下改名Xcode.a ...

  9. C++ 实现视频文件播放(Windows Media Player、MFC、C#)

    文章目录 1.简介 1.1 WMP控件特点 1.2 WMP开发接口 1.3 WMP开发方式 1.4 WMP支持格式 2.官网代码示例 2.1 Using the Windows Media Playe ...

最新文章

  1. 别名的应用(New-Alias)
  2. php appl_physical_path,PHP的一些面试题
  3. android数据回传多个页面_Android页面之间进行数据回传
  4. 请问.NET如何实现分布式系统?
  5. 好语言,就该善用它——《C++语言的设计与演化》读书笔记
  6. 王道考研 计算机网络6 OSI参考模型和各层作用
  7. 深入解读Flink资源管理机制
  8. 支付宝放出数字化经营新神器,可提升商家60%消费频次
  9. Android触控签名软件,Android Sign Kit(app一键签名)
  10. stata15中文乱码_如何解决 Stata 14 的中文乱码问题?Chinese support in Stata 14
  11. 五位数电话号码以及中国各市区号
  12. Android基站定位详解
  13. matlab上机作业,matlab上机作业(数字信号处理)
  14. pat 乙级 1072. 开学寄语(20)
  15. 腾讯云MySQL备份本地恢复
  16. 如何用python做数据分析实战_10分钟实战python简单数据分析
  17. 病原微生物高通量测序:第一节 概述
  18. 横滚角,俯仰角,航向角
  19. 常见的HTTP状态码及HTTP状态码大全
  20. 喜串(二分递归+传递下标)

热门文章

  1. [动画片] 2013美国动画片《疯狂原始人》高清1080P种子下载
  2. 微信小程序简单小代码
  3. 寒江独钓Windows内核安全编程__一个简单的Windows串口过滤驱动程序的开发
  4. 吾家有女初长成,愿你健康快乐成长!
  5. #define 详解
  6. (CTC损失)Hybrid CTC/Attention Architecture for End-to-End Speech Recognition阅读笔记
  7. 基于arm开发板在ubuntu18.04系统上编译vlc播放器
  8. 修改XP开机画面最简单办法
  9. 网课直播电脑手写板或者叫手机手写板
  10. 2020年一级消防工程师消防安全技术实务精讲班第1讲-考试特点及备考方案