使用SurfaceView+MediaPlayer+SeekBar实现视屏播放器
2017-02-23 17:09
411 查看
使用SurfaceView+MediaPlayer+SeekBar实现视屏播放器
1.界面设计2.实现代码
3.播放权限
1.界面设计代码块(activity_main.xml)
如图:<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>
2.实现代码(MainActivity)
public class MainActivity extends AppCompatActivity { private MediaPlayer mediaPlayer; private SeekBar sb_main_bar; private SurfaceView sv_main_surface; /* 使用SurfaceView+MediaPlayer+SeekBar实现视屏播放器 */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sb_main_bar = (SeekBar) findViewById(R.id.sb_main_bar);//获取SeekBar的id sv_main_surface = (SurfaceView) findViewById(R.id.sv_main_surface);//获取SurfaceView的id //给进度条设置滑动的监听 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=new MediaPlayer(); //设置音源 try { mediaPlayer.setDataSource(this, Uri.parse("file://手机存储/DCIM/Camera/lala.mp4")); //准备 mediaPlayer.prepare(); } 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); } } } }
3.播放权限(AndroidManifest.xml)
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><!--使用SurfaceView+MediaPlayer+SeekBar实现视屏播放器权限-->
相关文章推荐
- Android中使用SurfaceView+MediaPlayer+自定义的MediaController实现自定义的视屏播放器
- 使用SurfaceView+MediaPlayer+SeekBar实现视频播放
- Android视频播放框架Vitamio集成及使用MediaPlayer+SurfaceView、VideoView+MediaController实现播放网络视频
- 使用MediaRecorder+SurfaceView实现录像
- 使用mediaplayer + surfaceview来播放视频
- 4000 视频播放器(SurfaceView+MediaPlayer+SeekBar,VideoView+MediaController)
- surfaceView+mediaplayer+seekBar+自定义视频时间监控
- android下面使用SurfaceView+ mediaPlayer播放视频
- 使用mediaplayer + surfaceview来播放视频
- 多媒体(视频播放器)Mediaplayer+SurfaceView+Seekbar
- android MediaPlayer SurfaceView 网络视频播放器
- SurfaceView+MediaPlayer实现视频播放
- Android - SurfaceView + MediaPlayer实现分段视频无缝播放
- Android SurfaceView+MediaPlayer 本地视频播放器
- SurfaceView+MediaPlayer视频播放并用SharedPreferences实现暂停功能
- SurfaceView + MediaPlayer 实现视频播放功能
- android中使用surfaceview+MediaPlayer播放视频
- Android中使用surfaceview+MediaPlayer播放视频
- Android SurfaceView + MediaPlayer实现分段视频无缝播放
- Android MediaPlayer+SurfaceView实现视频播放