一、第一种方法

(使用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>



MainActivity
 
 

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) { //01.播放内存中的音频//mediaPlayer = MediaPlayer.create(this, R.raw.f);//播放内存卡中文件 mediaPlayer = new MediaPlayer(); try { mediaPlayer.setDataSource(this,Uri.parse("file://mnt/sdcard/storage/emulated/0/12.mp4"));//准备 mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); } //把捕捉到的画面放到SurfaceView mediaPlayer.setDisplay(sfv_movie_surface.getHolder()); 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>

MainActivity

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); }}

更多相关文章

  1. Android之SurfaceView实现视频播放
  2. Android(安卓)实现仿Window7图片预览窗格效果
  3. Android全屏设置的两种方式
  4. Android(安卓)7.0 移除设置中的某些项(辅助功能、流量使用情况、
  5. Android(安卓)ListView里设置默认Item的背景颜色
  6. TextView——行间距与字母间隔
  7. Android动态设置VIew宽高
  8. Android(安卓)ImageView图片自适应
  9. 2011.08.15(2)——— android audioManager解决MediaPlayer AudioT

随机推荐

  1. android TabActivity中onKeyDown无效问题
  2. Android:注册一个方向传感器的回调,能够让
  3. android 特殊用法琐碎二
  4. 初识Android之(一)-自定义标题栏控件
  5. android 通过php post 向mysql数据库写入
  6. Android(安卓)官方自带侧滑菜单DrawerLay
  7. Android FFmpeg 脚本编译静态库
  8. 简单几段代码实现窗口抖动
  9. gerrit 常用命令记录
  10. Android获取Theme的背景颜色