自定义简单视频播放器
2017-02-24 09:11
162 查看
效果图如下:
以下是代码:
注意要给权限:
以下是代码:
package com.example.android_27__playvideo_camera_lx; import android.content.Intent; import android.media.MediaPlayer; import android.net.Uri; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.SurfaceView; import android.view.View; import android.widget.ImageButton; import android.widget.SeekBar; import java.io.File; import java.io.IOException; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private SeekBar seekBar; private MediaPlayer mediaPlayer; private SurfaceView surfaceView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); seekBar = (SeekBar) findViewById(R.id.sb_main_bar); surfaceView = (SurfaceView) findViewById(R.id.surfaceView); //给进度条设置滑动的监听 seekBar.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 = new MediaPlayer(); //设置音乐来源路劲 try { //内存卡路劲,要加上file mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/mp/sister.mp4")); //准备 mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); } //将媒体播放器捕捉到的画面显示到surfaceview mediaPlayer.setDisplay(surfaceView.getHolder()); //开始播放 mediaPlayer.start(); //把播放图标换成暂停图标 imageButton.setImageResource(android.R.drawable.ic_media_pause); //获取音乐的总时长 int pd = mediaPlayer.getDuration(); //将进度条设置最大值为:音乐的总时长 seekBar.setMax(pd); //实例化线程 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 (seekBar.getProgress()<=seekBar.getMax()){ //获取音乐当前播放的位置 int cp = mediaPlayer.getCurrentPosition(); seekBar.setProgress(cp); } } } }
注意要给权限:
<!-- 读取内存卡权限 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
相关文章推荐
- Android简单本地视频播放器
- 使用VideoView实现简单视频播放器
- 基于SDL2.0和ffmpeg(2017,9,4版本)的简单视频播放器
- 基于DirectX和C#的一个简单视频播放器总结
- ffmpeg+sdl教程——编写一个简单的播放器3(为视频加入音频)
- 最简单的自定义视频播放进度条
- ffmpeg+sdl教程----编写一个简单的播放器2(输出视频到屏幕)
- ffmpeg+sdl教程----编写一个简单的播放器5(同步视频到音频)
- 个人笔记 AVfoundation框架的简单实用 自定义录制视频界面
- ffmpeg+sdl教程----编写一个简单的播放器3(为视频加入音频)
- ffmpeg+sdl教程----编写一个简单的播放器2(输出视频到屏幕)
- 使用libVLC制作视频播放器的自定义鼠标事件的捕获
- android简单视频播放器
- Html5Video标签和Source标签制作视频播放器及画面大小切换和简单弹幕效果
- 安卓开发:弹出自定义对话框自动播放视频(仿视频广告效果,使用mediaplayer和surfaceview做播放器)
- 制作简单视频播放器
- 自定义简单的播放器
- ffmpeg+sdl教程----编写一个简单的播放器3(为视频加入音频)
- Android简单网络视频播放器
- Android简单视频播放器之VideoView(一)