多媒体(视频播放器)Mediaplayer+SurfaceView+Seekbar
来源:互联网 发布:网络人头像 编辑:程序博客网 时间:2024/05/22 03:37
这个视频播放器是利用Mediaplayer比较复杂的,因为我上一篇音频播放
写的差不多了,只需要加上SurfaceView。这个SurfaceView是用来展示Mediaplayer捕捉到的画面的。
1,添加访问内存卡的权限
<!--读取内存卡的权限--> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
2,main_activity.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns: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" android:orientation="vertical" tools:context="com.zking.hzg_android_26_playmusic.MainActivity"> <SurfaceView android:layout_width="match_parent" android:layout_height="300dp" android:id="@+id/sv_surfaceview"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <SeekBar android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:id="@+id/seekBar" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@android:drawable/ic_media_play" android:id="@+id/iv_main_imageview" android:onClick="isPlay"/> </LinearLayout></LinearLayout>
3,MainActivity.java
package com.zking.hzg_android_26_playmusic;import android.media.AudioManager;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.ImageView;import android.widget.SeekBar;import android.widget.Toast;import java.io.IOException;public class MainActivity extends AppCompatActivity { private ImageView imageView;// private MediaPlayer mediaplayer; private SeekBar seekBar; private MediaPlayer mediaplayer; private ImageButton imageButton; private SurfaceView sv_surfaceview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); seekBar = (SeekBar) findViewById(R.id.seekBar); sv_surfaceview = (SurfaceView) findViewById(R.id.sv_surfaceview); //设置进度条的监听 seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { //获取拖动后的位置 int progress=seekBar.getProgress(); mediaplayer.seekTo(progress); } }); } public void isPlay(View view )throws IOException { imageButton = (ImageButton) view; if(mediaplayer==null){ //播放应用程序内的音频文件 //mediaplayer = MediaPlayer.create(MainActivity.this, R.raw.love); /* 播放内存卡内的音频文件 */ mediaplayer = new MediaPlayer(); //设置音频流的类型 mediaplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mediaplayer.setDataSource(MainActivity.this, Uri.parse("file://mnt/sdcard/Movies/m.mp4")); //准备一下(内存卡) mediaplayer.prepare(); //将媒体播放器捕捉的画面展示到SurfaceView mediaplayer.setDisplay(sv_surfaceview.getHolder()); mediaplayer.start(); imageButton.setImageResource(android.R.drawable.ic_media_pause); //获取音乐的播放时长 int durction= mediaplayer.getDuration(); //设置进度条的最大值:音乐的时长 seekBar.setMax(durction); 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 current=mediaplayer.getCurrentPosition(); seekBar.setProgress(current); } } }}
0 0
- 多媒体(视频播放器)Mediaplayer+SurfaceView+Seekbar
- 视频播放器(SurfaceView+MediaPlayer+SeekBar,VideoView+MediaController)
- 使用SurfaceView+MediaPlayer+SeekBar实现视频播放
- Android多媒体---SurfaceView(播放视频)+Mediaplayer(音频)
- Android MediaPlayer 多媒体(视频播放器)
- 多媒体之播放视频——VideoView和MediaPlayer(MediaPlayer和SurfaceView结合)
- Android两种播放视频的方法(SurfaceView+MediaPlayer+SeekBar)跟(VideoView+MediaController)
- Android 多媒体应用——MediaPlayer与SurfaceView播放视频
- Android多媒体开发【1】-- 利用SurfaceView + MediaPlayer开发最简单的视频播放器
- Android多媒体开发【1】-- 利用SurfaceView + MediaPlayer开发最简单的视频播放器
- 使用SurfaceView+MediaPlayer+SeekBar实现视屏播放器
- MediaPlayer+surfaceView实现视频播放器
- Android SurfaceView + MediaPlayer实现视频播放器
- android MediaPlayer SurfaceView 网络视频播放器
- android surfaceView+mediaPlayer 自定义视频播放器
- Android 视频播放器SurfaceView+Mediaplayer
- Android两种播放视频的方法(SurfaceView、MediaPlayer、SeekBar)和(VideoView、MediaController)等两种方法。
- surfaceView+mediaplayer+seekBar+自定义视频时间监控
- 状态模式
- 集合转为字符串
- StrStrI函数
- IDEA 怎么设置多个 resources 目录?
- 大笨钟
- 多媒体(视频播放器)Mediaplayer+SurfaceView+Seekbar
- url-pattern
- MySQL(慕课网笔记)
- POJ 3467 Cross Counting 可能会
- 开发人员与非技术同事沟通的八个聪明策略
- MFC下ODBC方式连接数据库
- 【codeforces 768B】Code For 1
- apacheAnt的构建脚本编写以及集成junit进行自动测试
- configure: error: Please fix the library issues listed above and try again错误解决方法