播放器中的的两个常用的进度条, 1,显示当前播播放器中的的两个常用的进度条, 1,显示当前播放进度 2,显示当前音量 package rw.test; import java.io.IOException; import android.app.Activity; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; public class TestMusicActivity extends Activity { /** Called when the activity is first created. */ private SeekBar SoundseekBar,ProceseekBar2; private Button button; private MediaPlayer mediaPlayer; private TextView nowPlayTime,allTime,volumeView,maxVolumeTextView; private AudioManager audioManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ProceseekBar2=(SeekBar)findViewById(R.id.seekBar1); SoundseekBar=(SeekBar)findViewById(R.id.seekBar2); button=(Button)findViewById(R.id.button1); nowPlayTime=(TextView)findViewById(R.id.textView1); allTime=(TextView)findViewById(R.id.textView2); volumeView=(TextView)findViewById(R.id.textView3); maxVolumeTextView=(TextView)findViewById(R.id.textView4); button.setOnClickListener(new ButtonListener()); mediaPlayer=new MediaPlayer(); audioManager=(AudioManager)getSystemService(AUDIO_SERVICE);//获取音量服务 int MaxSound=audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);//获取系统音量最大值 maxVolumeTextView.setText(String.valueOf(MaxSound)); SoundseekBar.setMax(MaxSound);//音量控制Bar的最大值设置为系统音量最大值 int currentSount=audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);//获取当前音量 SoundseekBar.setProgress(currentSount);//音量控制Bar的当前值设置为系统音量当前值 SoundseekBar.setOnSeekBarChangeListener(new SeekBarListener()); ProceseekBar2.setOnSeekBarChangeListener(new ProcessBarListener()); } class ButtonListener implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub if (mediaPlayer.isPlaying()) { mediaPlayer.pause(); } else { try { mediaPlayer.reset(); mediaPlayer.setDataSource("/sdcard/test.mp3"); mediaPlayer.prepare(); mediaPlayer.start(); StrartbarUpdate(); int Alltime= mediaPlayer.getDuration(); allTime.setText(ShowTime(Alltime)); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } //播放进度条 class ProcessBarListener implements OnSeekBarChangeListener{ @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub if (fromUser==true) { mediaPlayer.seekTo(progress); nowPlayTime.setText(ShowTime(progress)); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } } //音量进度条 class SeekBarListener implements OnSeekBarChangeListener{ @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub if (fromUser) { int SeekPosition=seekBar.getProgress(); audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, SeekPosition, 0); } volumeView.setText(String.valueOf(progress)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } } //时间显示函数,我们获得音乐信息的是以毫秒为单位的,把把转换成我们熟悉的00:00格式 public String ShowTime(int time){ time/=1000; int minute=time/60; int hour=minute/60; int second=time%60; minute%=60; return String.format("%02d:%02d", minute, second); } Handler handler=new Handler(); public void StrartbarUpdate(){ handler.post(r); } Runnable r=new Runnable() { @Override public void run() { // TODO Auto-generated method stub int CurrentPosition=mediaPlayer.getCurrentPosition(); nowPlayTime.setText(ShowTime(CurrentPosition)); int mMax=mediaPlayer.getDuration(); ProceseekBar2.setMax(mMax); ProceseekBar2.setProgress(CurrentPosition); handler.postDelayed(r, 100); } }; }
播放器中的的两个常用的进度条, 1,显示当前播放进度 2,显示当前音量 package rw.test; import java.io.IOException; import android.app.Activity; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; public class TestMusicActivity extends Activity { /** Called when the activity is first created. */ private SeekBar SoundseekBar,ProceseekBar2; private Button button; private MediaPlayer mediaPlayer; private TextView nowPlayTime,allTime,volumeView,maxVolumeTextView; private AudioManager audioManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ProceseekBar2=(SeekBar)findViewById(R.id.seekBar1); SoundseekBar=(SeekBar)findViewById(R.id.seekBar2); button=(Button)findViewById(R.id.button1); nowPlayTime=(TextView)findViewById(R.id.textView1); allTime=(TextView)findViewById(R.id.textView2); volumeView=(TextView)findViewById(R.id.textView3); maxVolumeTextView=(TextView)findViewById(R.id.textView4); button.setOnClickListener(new ButtonListener()); mediaPlayer=new MediaPlayer(); audioManager=(AudioManager)getSystemService(AUDIO_SERVICE);//获取音量服务 int MaxSound=audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);//获取系统音量最大值 maxVolumeTextView.setText(String.valueOf(MaxSound)); SoundseekBar.setMax(MaxSound);//音量控制Bar的最大值设置为系统音量最大值 int currentSount=audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);//获取当前音量 SoundseekBar.setProgress(currentSount);//音量控制Bar的当前值设置为系统音量当前值 SoundseekBar.setOnSeekBarChangeListener(new SeekBarListener()); ProceseekBar2.setOnSeekBarChangeListener(new ProcessBarListener()); } class ButtonListener implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub if (mediaPlayer.isPlaying()) { mediaPlayer.pause(); } else { try { mediaPlayer.reset(); mediaPlayer.setDataSource("/sdcard/test.mp3"); mediaPlayer.prepare(); mediaPlayer.start(); StrartbarUpdate(); int Alltime= mediaPlayer.getDuration(); allTime.setText(ShowTime(Alltime)); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } //播放进度条 class ProcessBarListener implements OnSeekBarChangeListener{ @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub if (fromUser==true) { mediaPlayer.seekTo(progress); nowPlayTime.setText(ShowTime(progress)); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } } //音量进度条 class SeekBarListener implements OnSeekBarChangeListener{ @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub if (fromUser) { int SeekPosition=seekBar.getProgress(); audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, SeekPosition, 0); } volumeView.setText(String.valueOf(progress)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } } //时间显示函数,我们获得音乐信息的是以毫秒为单位的,把把转换成我们熟悉的00:00格式 public String ShowTime(int time){ time/=1000; int minute=time/60; int hour=minute/60; int second=time%60; minute%=60; return String.format("%02d:%02d", minute, second); } Handler handler=new Handler(); public void StrartbarUpdate(){ handler.post(r); } Runnable r=new Runnable() { @Override public void run() { // TODO Auto-generated method stub int CurrentPosition=mediaPlayer.getCurrentPosition(); nowPlayTime.setText(ShowTime(CurrentPosition)); int mMax=mediaPlayer.getDuration(); ProceseekBar2.setMax(mMax); ProceseekBar2.setProgress(CurrentPosition); handler.postDelayed(r, 100); } }; }
//把一个名字为test.mp3的文件上传到系统中去,你们懂的.....
00:37 当前播放时间
04:16音乐总时间
11 当前音量
15 总音量
//如有疑问,本人QQ:812200157
您还没有登录,请您登录后再发表评论
3. ** SeekBar 进度条**:SeekBar是Android中的一个进度条控件,常用于显示媒体播放的进度。我们需要为MediaPlayer设置一个定时器或者监听器,定期更新SeekBar的进度。例如,可以通过MediaPlayer的getDuration()和...
在这个项目中,GestureDetector可能被用来检测用户的上下滑动,以调整播放进度,而ScaleGestureDetector则可能用于识别双指捏合的手势,以实现音量的增减。 在实现手势识别的过程中,你需要创建GestureDetector或...
这个"手势实现播放器的进度和音量调节.zip"源码示例,旨在教你如何利用手势操作来控制播放器的播放进度和音量,这对于开发音乐、视频类应用非常实用。下面我们将详细探讨其中涉及到的关键知识点。 1. **手势识别...
对于播放控制界面,可能需要用到SeekBar来控制播放进度。 8. **线程管理**:由于多媒体操作通常涉及I/O操作,应在子线程中执行,避免阻塞主线程。可以使用AsyncTask、Handler或Runnable+Looper组合来实现。 9. **...
此外,还会用到Android的布局和组件,如RecyclerView用于展示音乐列表,ImageView和TextView展示歌曲信息,SeekBar用于进度控制等。 至于"MuiscPlayer"这个文件,很可能是该项目的源代码包,包含了所有的类文件、...
通过它可以控制播放、暂停、停止以及调整音量等操作。 在源码中,开发者可能使用了`SurfaceView`或`TextureView`来显示视频内容。这两个组件可以将视频帧渲染到视图上,提供流畅的视频体验。`SurfaceView`适用于...
同时,为了实时显示音乐播放进度,我们需要在主线程之外创建一个Handler,定期更新进度条的状态。 音量控制则涉及到AudioManager。通过调用AudioManager的adjustVolume或setStreamVolume方法,可以改变音乐的音量。...
3. 歌曲进度条:展示当前播放进度,可拖动调整位置。 4. 歌曲列表:显示所有可播放的歌曲,点击选择播放。 5. 音量控制:调整系统音量。 6. 播放模式:如顺序播放、随机播放、单曲循环。 **四、文件管理** 为了...
3. **用户界面(UI)设计**:音乐播放器的界面通常包括歌曲列表、播放/暂停按钮、进度条、音量控制等元素。使用Android的布局管理器如LinearLayout、RelativeLayout或ConstraintLayout,可以创建这些组件。同时,还...
本项目“安卓开发-手势实现播放器的进度和音量调节”旨在教授如何利用手势控制来调整播放器的播放进度和音量,为用户提供更为直观和便捷的操作体验。我们将探讨以下几个关键知识点: 1. **手势识别基础**:在...
UI方面,Mini音乐播放器的界面可能包含以下组件:播放/暂停按钮、上一首/下一首按钮、进度条(用于滑动选择播放位置)、音量控制等。这些可以通过XML布局文件来定义,并在Java代码中进行事件监听和处理。例如,`...
另外,我们需要设计一个播放控制器界面,包含播放/暂停按钮、进度条、音量控制等元素,提供良好的用户体验。 4. **字幕处理**:卡拉OK字幕通常以SRT或LRC格式存在。Android没有内置的字幕处理库,所以需要使用第三...
4. **UI设计**:音乐播放器通常需要一个友好的用户界面,包括播放/暂停按钮、进度条、歌曲列表、音量控制等元素。可以使用Android的XML布局文件来定义这些视图,并在Java代码中绑定事件处理函数。 5. **歌曲列表...
同时,可能还会使用到RecyclerView展示歌曲列表,SeekBar控制播放进度。 4. **服务(Service)** 音频播放通常在后台进行,这就需要用到Service。创建一个MusicService,将播放任务放入其中,可以确保即使用户离开...
进度条的更新通常与MediaPlayer的onBufferingUpdate()或setOnSeekCompleteListener()回调关联,实时反映当前的播放进度。 "歌曲切换"功能则需要管理一个歌曲列表,并能够根据用户选择或者自动播放下一首。这通常...
4. 控制:设置播放进度`seekTo()`, 改变音量`setVolume()`等。 5. 回收:播放完毕或不再使用时,必须调用`release()`释放资源。 三、音频流处理 在MusicPlayer源码中,除了使用MediaPlayer外,还会涉及到音频流的...
14. **进度条同步**:设置SeekBar与音乐播放进度同步,需要定时更新SeekBar的值,确保用户能够直观看到播放进度。 15. **播放模式**:实现单曲循环、顺序播放、随机播放等模式,需要维护一个播放队列,并根据选择的...
这个音乐播放器应用的界面可能包含播放控制(播放/暂停、上一曲/下一曲)、进度条、音量控制等元素。Android提供了各种布局和控件,如LinearLayout、RelativeLayout、SeekBar等,用于构建用户界面。源码中可能会涉及...
UI设计通常包括播放/暂停按钮、进度条、音量控制、歌曲列表、歌词显示等元素。Android的`RecyclerView`可以用来展示歌曲列表,`SeekBar`用于进度控制,`ImageView`和`TextView`则用于封面和歌曲信息的展示。 4. **...
你可以使用RecyclerView展示歌曲列表,使用SeekBar控制播放进度,Button控件用于播放、暂停和停止操作。Android的Material Design库提供了丰富的UI组件,可以帮助我们快速创建现代、一致的界面。 文件管理是音乐...
相关推荐
3. ** SeekBar 进度条**:SeekBar是Android中的一个进度条控件,常用于显示媒体播放的进度。我们需要为MediaPlayer设置一个定时器或者监听器,定期更新SeekBar的进度。例如,可以通过MediaPlayer的getDuration()和...
在这个项目中,GestureDetector可能被用来检测用户的上下滑动,以调整播放进度,而ScaleGestureDetector则可能用于识别双指捏合的手势,以实现音量的增减。 在实现手势识别的过程中,你需要创建GestureDetector或...
这个"手势实现播放器的进度和音量调节.zip"源码示例,旨在教你如何利用手势操作来控制播放器的播放进度和音量,这对于开发音乐、视频类应用非常实用。下面我们将详细探讨其中涉及到的关键知识点。 1. **手势识别...
对于播放控制界面,可能需要用到SeekBar来控制播放进度。 8. **线程管理**:由于多媒体操作通常涉及I/O操作,应在子线程中执行,避免阻塞主线程。可以使用AsyncTask、Handler或Runnable+Looper组合来实现。 9. **...
此外,还会用到Android的布局和组件,如RecyclerView用于展示音乐列表,ImageView和TextView展示歌曲信息,SeekBar用于进度控制等。 至于"MuiscPlayer"这个文件,很可能是该项目的源代码包,包含了所有的类文件、...
通过它可以控制播放、暂停、停止以及调整音量等操作。 在源码中,开发者可能使用了`SurfaceView`或`TextureView`来显示视频内容。这两个组件可以将视频帧渲染到视图上,提供流畅的视频体验。`SurfaceView`适用于...
同时,为了实时显示音乐播放进度,我们需要在主线程之外创建一个Handler,定期更新进度条的状态。 音量控制则涉及到AudioManager。通过调用AudioManager的adjustVolume或setStreamVolume方法,可以改变音乐的音量。...
3. 歌曲进度条:展示当前播放进度,可拖动调整位置。 4. 歌曲列表:显示所有可播放的歌曲,点击选择播放。 5. 音量控制:调整系统音量。 6. 播放模式:如顺序播放、随机播放、单曲循环。 **四、文件管理** 为了...
3. **用户界面(UI)设计**:音乐播放器的界面通常包括歌曲列表、播放/暂停按钮、进度条、音量控制等元素。使用Android的布局管理器如LinearLayout、RelativeLayout或ConstraintLayout,可以创建这些组件。同时,还...
本项目“安卓开发-手势实现播放器的进度和音量调节”旨在教授如何利用手势控制来调整播放器的播放进度和音量,为用户提供更为直观和便捷的操作体验。我们将探讨以下几个关键知识点: 1. **手势识别基础**:在...
UI方面,Mini音乐播放器的界面可能包含以下组件:播放/暂停按钮、上一首/下一首按钮、进度条(用于滑动选择播放位置)、音量控制等。这些可以通过XML布局文件来定义,并在Java代码中进行事件监听和处理。例如,`...
另外,我们需要设计一个播放控制器界面,包含播放/暂停按钮、进度条、音量控制等元素,提供良好的用户体验。 4. **字幕处理**:卡拉OK字幕通常以SRT或LRC格式存在。Android没有内置的字幕处理库,所以需要使用第三...
4. **UI设计**:音乐播放器通常需要一个友好的用户界面,包括播放/暂停按钮、进度条、歌曲列表、音量控制等元素。可以使用Android的XML布局文件来定义这些视图,并在Java代码中绑定事件处理函数。 5. **歌曲列表...
同时,可能还会使用到RecyclerView展示歌曲列表,SeekBar控制播放进度。 4. **服务(Service)** 音频播放通常在后台进行,这就需要用到Service。创建一个MusicService,将播放任务放入其中,可以确保即使用户离开...
进度条的更新通常与MediaPlayer的onBufferingUpdate()或setOnSeekCompleteListener()回调关联,实时反映当前的播放进度。 "歌曲切换"功能则需要管理一个歌曲列表,并能够根据用户选择或者自动播放下一首。这通常...
4. 控制:设置播放进度`seekTo()`, 改变音量`setVolume()`等。 5. 回收:播放完毕或不再使用时,必须调用`release()`释放资源。 三、音频流处理 在MusicPlayer源码中,除了使用MediaPlayer外,还会涉及到音频流的...
14. **进度条同步**:设置SeekBar与音乐播放进度同步,需要定时更新SeekBar的值,确保用户能够直观看到播放进度。 15. **播放模式**:实现单曲循环、顺序播放、随机播放等模式,需要维护一个播放队列,并根据选择的...
这个音乐播放器应用的界面可能包含播放控制(播放/暂停、上一曲/下一曲)、进度条、音量控制等元素。Android提供了各种布局和控件,如LinearLayout、RelativeLayout、SeekBar等,用于构建用户界面。源码中可能会涉及...
UI设计通常包括播放/暂停按钮、进度条、音量控制、歌曲列表、歌词显示等元素。Android的`RecyclerView`可以用来展示歌曲列表,`SeekBar`用于进度控制,`ImageView`和`TextView`则用于封面和歌曲信息的展示。 4. **...
你可以使用RecyclerView展示歌曲列表,使用SeekBar控制播放进度,Button控件用于播放、暂停和停止操作。Android的Material Design库提供了丰富的UI组件,可以帮助我们快速创建现代、一致的界面。 文件管理是音乐...