使用SurfaceView+MediaPlayer+SeekBar实现视频播放
来源:互联网 发布:虚拟局域网属于网络层 编辑:程序博客网 时间:2024/06/06 02:20
以下是我使用SurfaceView+MediaPlayer+SeekBar实现简单的视频播放,这是基于音乐播放的前提实现的
只要是获取手机内存的内容都需要在清单文件中添加权限:
<!-- 读取内存卡的权限 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
activity_main2.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main2" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.g150825_playvideo.Main2Activity"> <SurfaceView android:layout_width="match_parent" android:layout_height="300dp" android:id="@+id/sv_main_surface" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <SeekBar android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/sb_main_bar" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@android:drawable/ic_media_play" android:onClick="isPlayOrPause" /> </LinearLayout></LinearLayout>
Main2Activity.java
package com.example.g150825_playvideo;import android.media.AudioManager;import android.media.MediaPlayer;import android.net.Uri;import android.os.Environment;import android.os.SystemClock;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.View;import android.widget.ImageButton;import android.widget.SeekBar;import java.io.IOException;public class Main2Activity extends AppCompatActivity { private MediaPlayer mediaPlayer; private SeekBar sb_main_bar; private SurfaceView sv_main_surface; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); sb_main_bar = (SeekBar) findViewById(R.id.sb_main_bar); sv_main_surface = (SurfaceView) findViewById(R.id.sv_main_surface);//给进度条设置滑动的监听 sb_main_bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { int progress=seekBar.getProgress(); //在当前位置播放 mediaPlayer.seekTo(progress); } }); } public void isPlayOrPause(View view){ final ImageButton imageButton= (ImageButton) view; if(mediaPlayer==null){ //播放内存中音频 //mediaPlayer = MediaPlayer.create(this, R.raw.f); //播放内存卡中文件 mediaPlayer=new MediaPlayer(); //设置音源 try { mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/music11/videoplayer.mp4"));// //准备 mediaPlayer.prepare(); //mediaPlayer.prepareAsync(); } catch (IOException e) { e.printStackTrace(); } //将媒体播放器捕捉的画面展示到SurfaceView mediaPlayer.setDisplay(sv_main_surface.getHolder()); mediaPlayer.start(); imageButton.setImageResource(android.R.drawable.ic_media_pause); //获取音乐的总时长 int duration=mediaPlayer.getDuration(); //将进度条设置最大值为:音乐的总时长 sb_main_bar.setMax(duration); new MyThread().start();// }// }); }else if(mediaPlayer.isPlaying()){ mediaPlayer.pause(); imageButton.setImageResource(android.R.drawable.ic_media_play); }else{ mediaPlayer.start(); imageButton.setImageResource(android.R.drawable.ic_media_pause); } } class MyThread extends Thread{ @Override public void run() { super.run(); while(sb_main_bar.getProgress()<=sb_main_bar.getMax()){ //获取音乐当前播放的位置 int position=mediaPlayer.getCurrentPosition(); sb_main_bar.setProgress(position); } } }}
1 0
- 使用SurfaceView+MediaPlayer+SeekBar实现视频播放
- 使用SurfaceView+MediaPlayer+SeekBar实现视屏播放器
- SurfaceView+MediaPlayer实现视频播放
- MediaPlayer、SurfaceView实现视频播放
- 使用SurfaceView&MediaPlayer播放视频
- 使用SurfaceView+MediaPlayer视频播放
- 多媒体(视频播放器)Mediaplayer+SurfaceView+Seekbar
- 视频播放器(SurfaceView+MediaPlayer+SeekBar,VideoView+MediaController)
- MediaPlayer + SurfaceView 来实现 视频播放
- SurfaceView + MediaPlayer 实现视频播放功能
- MediaPlayer+surfaceView实现视频播放器
- Android SurfaceView + MediaPlayer实现视频播放器
- Android MediaPlayer+SurfaceView实现视频播放
- Android SurfaceView+MediaPlayer实现视频播放
- 使用mediaplayer + surfaceview来播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- ufommmnmleftlvg
- python中的yeild
- JS-封装函数getValue(key),实现获取请求数据中的value值
- HRF step by step
- hdu 3529 舞蹈链之可重复覆盖
- 使用SurfaceView+MediaPlayer+SeekBar实现视频播放
- Linux五种IO模型
- pads布局布线技巧二(【快速(点击)删除连线】 【顶层视图和底层视图互换】 【把板子放大到屏幕上最合适的位置】【快速布线(过焊盘不结束)】)
- 子雨大数据之Spark入门教程---Spark简介1.1
- 一、策略模式(Unity3d演示)
- JS this的用法
- 子雨大数据之Spark入门教程---Spark入门:Spark运行架构1.2
- java相关技术名称总结及分析
- HDOJ(HDU).1412 {A} + {B} (STL SET)