ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:185.62KB ,
资源ID:20147399      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20147399.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Android学习笔记045之MediaPlayer.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Android学习笔记045之MediaPlayer.docx

1、Android学习笔记045之MediaPlayerAndroid学习笔记045之MediaPlayer这一篇我们介绍一下Android的音频和视频播放,重点讲解Mediaplayer这个类。 Android的MediaPlayer包含了Audio和Video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlaer来实现的。概述首先我们看一下Mediaplayer的生命周期图下面我们看一下MediaPlayer提供的方法:addTimedTextSource(Context context, Uri uri, String mimeType)方法:添

2、加一个外部定时文本文件,重载方法:addTimedTextSource(String path, String mimeType)、addTimedTextSource(FileDescriptor fd, long offset, long length, String mime)、addTimedTextSource(FileDescriptor fd, String mimeType)attachAuxEffect(int effectId)方法:给播放器附加一个播放效果create(Context context, Uri uri, SurfaceHolder holder, Audi

3、oAttributes audioAttributes, int audioSessionId)方法:实例化Mediaplayer的方法,重载方法有:create(Context context, Uri uri, SurfaceHolder holder)、create(Context context, int resid, AudioAttributes audioAttributes, int audioSessionId)、create(Context context, int resid)、create(Context context, Uri uri)deselectTrack(i

4、nt index)方法:取消曲目getAudioSessionId()方法:获取音乐的SessionIDgetCurrentPosition()方法:获取当前播放位置getDuration()方法:获取文件的播放时间getPlaybackParams()方法:获取播放参数getSelectedTrack(int trackType)方法:获取选中的曲目getSyncParams()方法:获取Audio或者Vedio的同步模式getTimestamp()方法:获取当前的播放位置作为一个时间戳getTrackInfo()方法:获取轨道信息数组getVideoHeight()方法:获取Vedio播放

5、器的高度getVideoWidth()方法:获取Vedio播放器的宽度isLooping()方法:检查播放器是否在循环isPlaying()方法:检查播放器是否在播放pause()方法:暂停prepare()方法:准备播放器进行播放prepareAsync():异步准备播放器release()方法:释放与当前Mediaplayer相关的资源reset()方法:重置播放器状态seekTo(int msec)方法:跳转到特定时间位置selectTrack(int index)方法:选中一个曲目setAudioAttributes(AudioAttributes attributes)方法:设置音频

6、播放器的属性setAudioSessionId(int sessionId)方法:设置音频播放器的SessionIdsetAudioStreamType(int streamtype)方法:设置Mediaplayer的音频流类型setAuxEffectSendLevel(float level)方法:设置播放器的第二电平附加作用setDataSource(String path)方法:设置多媒体资源位置,重载方法有:setDataSource(Context context, Uri uri, Map音频播放使用Mediaplayer实现音频播放有几个步骤:创建Mediaplayer对象,这有

7、几种方法,一种是直接new出来,另外一种是通过调用create方法,需要注意的是:直接new出来需要调用prepare方法,建议使用prepareAsync方法完成准备;调用create方法就不能调用prepare方法,否则会出现状态异常通过setDataSource()方法设置音频文件的路径,当然这里只是很简单的,实际开发中会采取其他方法3.调用start方法开始播放音频下面我们通过一个小例子实现音频播放首先是布局文件代码: 这里没有什么好介绍的,非常简单的一个布局。接下来是Activity的代码:package com.example.mediplayerdemo;import andro

8、id.content.Context;import android.content.Intent;import android.media.MediaPlayer;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;i

9、mport android.widget.Button;import android.widget.SeekBar;import android.widget.TextView;/* * Created by Huawen on 2016/9/5. */public class MusicActivity extends AppCompatActivity private static final String TAG = MusicActivity;private Button btn_music_play;private Button btn_music_stop;private Butt

10、on btn_music_resume;private SeekBar mSeekBar;private TextView tv_now_time;private TextView tv_total_time;private MediaPlayer mMediaPlayer;private Handler mHandler = new Handler() Override public void handleMessage(Message msg) super.handleMessage(msg); ;private boolean isDstroy = false;private Runna

11、ble mRunable = new Runnable() Override public void run() if (!isDstroy) mHandler.postDelayed(this, 1000); int currentTime = Math.round(mMediaPlayer.getCurrentPosition() / 1000); String currentStr = String.format(%s%02d:%02d, 当前时间 , currentTime / 60, currentTime % 60); tv_now_time.setText(currentStr)

12、; mSeekBar.setProgress(mMediaPlayer.getCurrentPosition(); ;Overrideprotected void onCreate(Nullable Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_music); initView(); initMediaPlayer();private void initMediaPlayer() mMediaPlayer = MediaPlayer.create(t

13、his, R.raw.erathemass); Log.d(TAG, 初始化播放器);private void initView() btn_music_play = (Button) findViewById(R.id.btn_music_play); btn_music_stop = (Button) findViewById(R.id.btn_music_stop); btn_music_resume = (Button) findViewById(R.id.btn_music_resume); mSeekBar = (SeekBar) findViewById(R.id.seekbar

14、); tv_now_time = (TextView) findViewById(R.id.tv_now_time); tv_total_time = (TextView) findViewById(R.id.tv_total_time); mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() Orride public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) if (mMediaPlayer !=

15、 null) mMediaPlayer.seekTo(seekBar.getProgress(); Override public void onStartTrackingTouch(SeekBar seekBar) Override public void onStopTrackingTouch(SeekBar seekBar) ); btn_music_play.setOnClickListener(new View.OnClickListener() Override public void onClick(View v) if (!mMediaPlayer.isPlaying() mM

16、ediaPlayer.start(); int totalTime = Math.round(mMediaPlayer.getDuration() / 1000); String totalStr = String.format(%02d:%02d, totalTime / 60, totalTime % 60); tv_total_time.setText(totalStr); mHandler.postDelayed(mRunable, 1000); mSeekBar.setMax(mMediaPlayer.getDuration(); ); btn_music_resume.setOnC

17、lickListener(new View.OnClickListener() Override public void onClick(View v) if (mMediaPlayer.isPlaying() mMediaPlayer.pause(); ); btn_music_stop.setOnClickListener(new View.OnClickListener() Override public id onClick(View v) if (mMediaPlayer.isPlaying() mMediaPlayer.reset(); initMediaPlayer(); );p

18、ublic static void startActivity(Context mContext) mContext.startActivity(new Intent(mContext, MusicActivity.class);Overrideprotected void onDestroy() super.onDestroy(); if (mMediaPlayer != null) mMediaPlayer.stop(); isDstroy = true; mMediaPlayer.release(); 这里只是很简单的实现单首歌曲的播放,就不贴效果图了,后面我们会专门做一个音乐播放器的项

19、目。视频播放这里我们使用VideoView实现网络视频播放,实现的步骤:在布局文件中创建VideoView组件,或者在代码中指定调用VedioView的两个方法指定播放的视频文件:(1)setVidePath(String path):加载path文件代表的视频;(2)setVideoURI(Uri uri):加载uri所对应的视频调用VideoView的start()、stop()、pause()方法来控制视频的播放下面我们实现一个简单的例子:首先是布局文件 然后是activity代码:package com.example.mediplayerdemo;import android.con

20、tent.Context;import android.content.Intent;import .Uri;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.VideoView;/* * author: Huawen * created on: 2016/9/5

21、11:00 * description: */public class MovieActivity extends AppCompatActivity private VideoView videoView;private Button btn_video_start;private Button btn_video_pause;private Button btn_video_stop;private Uri mURI = Uri.parseOverrideprotected void onCreate(Nullable Bundle savedInstanceState) super.on

22、Create(savedInstanceState); setContentView(R.layout.activity_movie); videoView = (VideoView) findViewById(R.id.videoView); btn_video_start = (Button) findViewById(R.id.btn_video_start); btn_video_pause = (Button) findViewById(R.id.btn_video_pause); btn_video_stop = (Button) findViewById(R.id.btn_video_stop); videoView.setVideoURI(mURI); btn_video_start.setOnClickListener(new View.OnClickListener() Override public void onClick(View v) if (videoView != null) videoView.start(); ); btn_vi

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1