第一种结果如下:
第二步:MainActivity类代码
public class MainActivity extends AppCompatActivity { private SeekBar sb_projerss; private MediaPlayer mediaPlayer; private SurfaceView sv_sp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取SeekBar的ID sb_projerss =(SeekBar)findViewById(R.id.sb_projerss); sv_sp =(SurfaceView)findViewById(R.id.sv_sp); //设置监听 sb_projerss.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 bf(View view){ //获得ImageButton final ImageButton imageButton= (ImageButton) view; if(mediaPlayer==null){ //播放内存卡中的文件 mediaPlayer=new MediaPlayer(); //设置音源 try { mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/movies/sister.mp4")); mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); } //将画面展示到SurfaceView中 mediaPlayer.setDisplay(sv_sp.getHolder()); mediaPlayer.start(); imageButton.setImageResource(android.R.drawable.ic_media_pause); //获取音乐总时间 int duration=mediaPlayer.getDuration(); //i sb_projerss.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_projerss.getProgress()<=sb_projerss.getMax()){ //获取音乐当前播放的位置 int position=mediaPlayer.getCurrentPosition(); //放入SeekBar中 sb_projerss.setProgress(position); } } }在AndroidManifest.xml中写权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />第二种:利用VideoView显示和MediaController媒体控制器 结果如下图:
第一步:activity_videoview.xml布局文件
第二步:VideoviewActivity类
public class VideoviewActivity extends AppCompatActivity { private VideoView vv_vodio; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_videoview); //获得VideoView的ID vv_vodio =(VideoView)findViewById(R.id.vv_vodio); //设置播放视频的来源 vv_vodio.setVideoPath("file://mnt/sdcard/movies/sister.mp4"); //实例化媒体控制器 MediaController mediaController=new MediaController(this); mediaController.setMediaPlayer(vv_vodio); vv_vodio.setMediaController(mediaController); }}新闻热点
疑难解答