Android中常见音、视频支持的格式

视频 音频
3GPP、MPEG-4 MP3、3GPP、Ogg、WAVE

MediaPalyer

实例化分两种情况:

使用new 关键字:

setDataSource(); // 装载资源,此时资源并没有真正加载
prepare(); //必须调用,预加载

静态:
使用后若视频无法观看,或者获取不到会抛出空指针异常

create(Content content,Uri uri);
create(Content content, int resid);

除了上边的方法之外,常用方法:

方法 描述
start() 开始播放视频或者恢复暂停的视频
pause() 暂停播放
stop() 停止播放
reset() 重置MediaPalyer对象,之后可以设置新的视频或者音频资源
release() 释放资源
setDisplay() 关联SurfaceView,使用SurfaceView的getHolder()方法做参数

注册监听,这个监听只有在视频结束时会回调:

mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {@Overridepublic void onCompletion(MediaPlayer mediaPlayer) {Toast.makeText(MainActivity.this,"结束",Toast.LENGTH_SHORT).show();}});

实例:

权限:

<uses-permission android:name="android.permission.INTERNET"/>

主活动布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns: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:orientation="vertical"tools:context=".MainActivity"><!--SurfaceView 中有一个属性是android:keepScreenOn="true" 视频播放时打开屏幕--><SurfaceViewandroid:id="@+id/surfaceview"android:keepScreenOn="true"android:layout_gravity="center"android:layout_width="300px"android:layout_height="300px" /><Buttonandroid:id="@+id/button1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="开始或者回复播放" /><Buttonandroid:id="@+id/button2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="暂停" /><Buttonandroid:id="@+id/button3"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="停止" />
</LinearLayout>

主活动文件:

package com.example.newland.i20190821;import android.media.MediaPlayer;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;import java.io.IOException;public class MainActivity extends AppCompatActivity {MediaPlayer mediaPlayer;Button button1,button2,button3;SurfaceView surfaceView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);String path="http://f.video.weibocdn.com/004wZUsMgx07wor0Ifra01041200drbW0E010.mp4?label=mp4_hd&template=400x224.24.0&trans_finger=ac6fb6d5c49a67fe2901ae638b222ab2&Expires=1566393705&ssig=S6XrarY4eE&KID=unistore,video";//装载网络视频,记得添加网络权限,不仅仅可以播放视频,还可以播放音频,但没有图像输出,需要SurfaceView配合使用。mediaPlayer = new MediaPlayer();try {mediaPlayer.setDataSource(MainActivity.this,Uri.parse(path));mediaPlayer.prepare();} catch (IOException e) {e.printStackTrace();}/*//使用默认构造也可以加载视频MediaPlayer mediaPlayer1 = new MediaPlayer();try {//这一步并未真的装载视频mediaPlayer1.setDataSource(path);//这一步之后才会装载视频,可以理解为预加载mediaPlayer1.prepare();} catch (IOException e) {e.printStackTrace();}*//*//重置MediaPlayer对象,之后可以设置新的视频资源mediaPlayer.reset();*/button1 = findViewById(R.id.button1);button2 = findViewById(R.id.button2);button3 = findViewById(R.id.button3);surfaceView = findViewById(R.id.surfaceview);//开始或恢复button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {mediaPlayer.start();//使用SurfaceView输出图像的方法mediaPlayer.setDisplay(surfaceView.getHolder());}});//暂停button2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {mediaPlayer.pause();}});//停止button3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {mediaPlayer.stop();}});//设置监听,在视频停止时才会触发mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {@Overridepublic void onCompletion(MediaPlayer mediaPlayer) {Toast.makeText(MainActivity.this,"结束",Toast.LENGTH_SHORT).show();}});}@Overrideprotected void onDestroy() {//释放资源mediaPlayer.release();super.onDestroy();}
}

Android MediaPalyer实现视频播放相关推荐

  1. Android开发之视频播放器

    Android开发之视频播放器 一.效果图 二.build.gradle中导入依赖 三.主布局文件(activity_video) 四.布局文件(video_item) 五.布局文件(activity ...

  2. 开源安卓Android流媒体音视频播放器实现声音自动停止、恢复、一键静音功能源码

    本文转自EasyDarwin团队John的博客:http://blog.csdn.net/jyt0551/article/details/60802145 我们在开发安卓Android流媒体音视频播放 ...

  3. android 实现视频播放功能,Android项目实现视频播放器

    本文实例为大家分享了Android项目实现视频播放器的具体代码,供大家参考,具体内容如下 VideoView控件是播放视频用的,借助它可以完成一个简易的视频播放器. ①在activity_main.x ...

  4. Android开发 VideoView视频播放详解

    前言 VideoView是Android主要的视频播放View,它其实是对MediaPlayer的再次封装.如果你已经了解过MediaPlayer在使用VideoView是十分简单的.如果你想先了解M ...

  5. android系统更新视频播放器,基于的Android系统地视频播放器.doc

    本科毕业设计(论文) 基于Android系统的视频播放器Through the implementation of video player based on Android platform 致 谢 ...

  6. 玩转Android之在线视频播放控件Vitamio的使用

    其实Android中自带的MediaPlayer本身就能播放在线视频,MediaPlayer结合SurfaceView播放在线视频也是不错的选择(如果你没有性能或者用户体验上的要求),关于MediaP ...

  7. Android多媒体之视频播放器高级开发

    1.获取播放的数据源 播放视频的数据源一般有两个,一个是请求网络,从服务器后台直接获取播放的视频信息,另一种是播放手机中本地的视频,这里我们采用的播放源为播放手机本地的视频 1.1 查询获取手机中的视 ...

  8. android webview 下载视频播放 206,Android webview+Html5 video

    1.网页代码,就一个video 控件: HTML5视频播放器: http://218.206.204.71/app/public/media/BHSJ.mp4 body { margin: 0; pa ...

  9. android ios 传视频播放器,推荐用于iOS / Android全面格式的视频播放器|手机最强大的播放器...

    几天前,一个朋友以ts格式下载了一些高清电视剧,但是无法在iPad上播放,因此我想在计算机上将其转换为MP4格式. 花了时间和精力,结果并不令人满意. 事实上手机上的万能播放器,所有平台现在都具有支持 ...

最新文章

  1. struts.xml配置详解
  2. 牧小熊:Adobe Illustrator 在科研作图中的应用!
  3. LSTM为何如此有效?
  4. LeetCode 54. Spiral Matrix--Python解法--螺旋排序
  5. 把磁力下载站改为python系统
  6. Using the New MySQL Query Profiler
  7. 张孝祥Java培训视频及孙鑫java视频网址
  8. Codeforces Round #168 (Div. 2)D. Zero Tree(DP,中等难度)
  9. python进度条 pyqt_python如何通过pyqt5实现进度条
  10. Flink官方文档学习(三):Standalone Cluster 集群部署
  11. java程序员 英文简历_Java程序员英文简历
  12. 学术会议论文查重吗_会议论文需要进行查重吗?
  13. 怎么改变图片的尺寸?教你在线修改图片尺寸大小
  14. 泰坦尼克号乘客生存分析——用机器学习告诉你,如果你在当时的船上,有多大机率生还?
  15. 17.半拗(小拗)可救可不救
  16. android 屏幕比例,16:10还是4:3?纵论安卓平板最佳屏幕比例
  17. VS 2019教程:创建ASP.NET Core Web App
  18. word转excel
  19. 从0.1加0.2不等于0.3谈Python浮点数的前世今生
  20. 免费报表XDOC从入门到精通(一)简介

热门文章

  1. 西门子s7-200入门到精通视频教程-第32课
  2. 自制APP连接OneNET---实现数据监控和下发控制(MQTT)
  3. 转载自网眼的QQ微博(http://t.qq.com/zhangking)
  4. C++实现的Buffer类
  5. c语言列指针的形式,C语言:行指针和列指针
  6. 程序员应知必会的思维模型之 7 邓巴数字 (Dunbar‘s Number)
  7. 如何让外网访问本地WEB服务器
  8. hashSHA256加密
  9. 我国计算机在办公应用普及时间,论如何提高水利工程中计算机的应用
  10. nyoj 451 光棍节的快乐