一、第一种方法
(使用SufaceView\MediaPlayer\SekBar实现视频播放)
activity_main
| <?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.android_playmusic.MainActivity"> <SeekBarandroid:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:id="@+id/seekbar" /><ImageButtonandroid:layout_width="wrap_content"droid:layout_height="wrap_content"android:src="@android:drawable/ic_media_play"android:onClick="playmusic" /></LinearLayout> |
|
package com.example.android_playmusic;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.ImageButton;import android.widget.SeekBar;import java.io.IOException;publicclassMainActivityextends AppCompatActivity {private SeekBar seekbar; private MediaPlayer mediaPlayer; private SurfaceView sfv_movie_surface; @OverrideprotectedvoidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_movies); seekbar= (SeekBar) findViewById(R.id.); sfv_movie_surface = (SurfaceView) findViewById(R.id.sfv_movie_surface); seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @OverridepublicvoidonProgressChanged(SeekBar seekBar, int i, boolean b) { } @OverridepublicvoidonStartTrackingTouch(SeekBar seekBar) { } @OverridepublicvoidonStopTrackingTouch(SeekBar seekBar) { int progress = seekBar.getProgress(); mediaPlayer.seekTo(progress); } }); } publicvoidplaymusic(View view) { final ImageButton imageButton = (ImageButton) view; if (mediaPlayer == null) { mediaPlayer = new MediaPlayer(); try { mediaPlayer.setDataSource(this,Uri.parse("file://mnt/sdcard/storage/emulated/0/12.mp4")); mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); } mediaPlayer.start();imageButton.setImageResource(android.R.drawable.ic_media_pause);int duration = mediaPlayer.getDuration(); seekbar.setMax(duration); new MyThread().start(); } elseif (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 { @Overridepublicvoidrun() { super.run();while (seekbar.getProgress() <= seekbar.getMax()) { int position = mediaPlayer.getCurrentPosition(); seekbar.setProgress(position); } } }} |
二、第二种方法(使用VideoView、MediaControl)
activity_main
|
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.zking.android_playmusic.MainActivity"> |
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.android_playmusic.MainActivity"> |
<VideoView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/vv_vidao_view"
/>
</LinearLayout> |
package com.zking.playmusic;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.MediaController;import android.widget.VideoView;publicclassMediacontrolleActivity extends AppCompatActivity {private VideoView vv_vidao_view; @OverrideprotectedvoidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mediacontrolle); vv_vidao_view = (VideoView) findViewById(R.id.vv_vidao_view); vv_vidao_view.setVideoPath("file://mnt/sdcard/storage/emulated/0/12.mp4"); MediaController mediaController=new MediaController(this); mediaController.setMediaPlayer(vv_vidao_view); vv_vidao_view.setMediaController(mediaController); }} |
|
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.android_playmusic.MainActivity"> |
import
android.support.v7.app.AppCompatActivity;
import
android.os.Bundle;
import
android.widget.MediaController;
import
android.widget.VideoView;
public
classMediacontrolleActivity extends AppCompatActivity {
private
VideoView vv_vidao_view;
@Override
protected
void
onCreate
(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState); setContentView(R.layout.activity_mediacontrolle); vv_vidao_view = (VideoView) findViewById(R.id.vv_vidao_view);
vv_vidao_view.setVideoPath(
"file://mnt/sdcard/storage/emulated/0/12.mp4"
);
MediaController mediaController=
new
MediaController(
this
); mediaController.setMediaPlayer(vv_vidao_view); vv_vidao_view.setMediaController(mediaController); }}