Android视频音频播放Word文件下载.docx
- 文档编号:6799676
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:20
- 大小:35.35KB
Android视频音频播放Word文件下载.docx
《Android视频音频播放Word文件下载.docx》由会员分享,可在线阅读,更多相关《Android视频音频播放Word文件下载.docx(20页珍藏版)》请在冰点文库上搜索。
3)onDestory中是否音乐播放器的内存。
应用生命周期的功能,实现面试宝典中的退出系统功能。
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
allActiveActivities.add(this);
}
protectedvoidonDestroy(){
//将当前要退出的Activity从所有活动的Activity集合中删除
try{
allActiveActivities.remove(this);
}catch(Exceptione){
e.printStackTrace();
}
super.onDestroy();
当点击退出时,需要将整个集合中所有的Activity关闭。
exit.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
//循环迭代所有活动的Activity
Iterator<
Activity>
iter=allActiveActivities
.iterator();
while(iter.hasNext()){
iter.next().finish();
}
}
});
3.2、SeekBar拖动条(掌握)
使用SeekBar组件,可以实现一个拖动条,用来完成调整亮度,改变音乐播放位置等功能。
<
LinearLayoutxmlns:
android="
xmlns:
tools="
android:
layout_width="
match_parent"
layout_height="
wrap_content"
orientation="
vertical"
>
<
SeekBar
id="
@+id/seekbar"
max="
100"
progress="
50"
/>
TextView
@+id/result"
text="
当前选择的值为:
50"
/LinearLayout>
也可以加入监听功能。
publicclassMainActivityextendsActivity{
privateSeekBarseekbar;
privateTextViewresult;
Globals.init(this);
//设置所使用的布局界面
setContentView(R.layout.activity_main);
seekbar=(SeekBar)findViewById(R.id.seekbar);
result=(TextView)findViewById(R.id.result);
seekbar.setOnSeekBarChangeListener(newOnSeekBarChangeListener(){
@Override
publicvoidonStopTrackingTouch(SeekBarseekBar){
result.setText("
停止拖动"
);
}
publicvoidonStartTrackingTouch(SeekBarseekBar){
开始拖动"
publicvoidonProgressChanged(SeekBarseekBar,intprogress,
booleanfromUser){
正在拖动,当前的值为:
"
+progress);
});
}
3.3、音乐播放器(掌握)
在进行音频和视频播放时,都需要使用MediaPlayer类来加载音频或视频文件。
同时要注意,如果想使用模拟器播放音频时,不能使用snapshot。
同时还要注意,如果使用win7+模拟器播放音频时,必须使用管理员身份启动Eclipse,否则SD卡无法识别。
准备工作都完成后,可以开始初始化音频播放的类,MediaPlayer这个类也有自己的生命周期。
可以通过其API文档来查看生命周期的执行流程:
1)建立对象后,MediaPlayer对象会默认处于空闲状态(idle)
2)需要为其设置播放的数据来源(音频或视频文件)
3)调用prepare()方法,将里面的一些信息读入并准备好。
4)准备好后,才可以调用start()进行播放
5)如果设置了循环播放(looping=true)且歌曲已经播放完成,则会自动重新播放。
6)在播放状态下,调用pause()方法会进入暂停状态,再次调用start()即可继续播放。
7)如果没有设置循环播放(Looping=false),且音乐播放完成,会自动进入播放完成状态,这时如果再次调用start(),则会重新开始当前歌曲的播放。
8)停止状态不会自动进入,必须调用stop方法才会进入这个状态。
9)如果想完整的释放所有内存,需要调用release()方法来完成。
这里先完成一个基本的歌曲播放功能,没有界面。
privateMediaPlayerplayer;
privateStringfilePath="
/mnt/sdcard/a.mp3"
;
//初始化
player=newMediaPlayer();
//设置要播放的文件
player.setDataSource(filePath);
//进行准备操作
player.prepare();
//开始播放
player.start();
Toast.makeText(this,"
当前加载的音乐有问题,请确定文件格式是否正确!
"
Toast.LENGTH_LONG)
.show();
//退出时释放音乐
if(player!
=null){
if(player.isPlaying()){
player.stop();
player.release();
设计界面,加入播放,暂停,上一首,下一首,以及所有歌曲列表等界面组件。
background="
#cccccc"
@+id/music_name"
0dp"
layout_weight="
1"
gravity="
center"
@string/hello_world"
textColor="
#000000"
textSize="
16sp"
LinearLayout
2"
horizontal"
@drawable/audio_identify_start_default"
ListView
@+id/list"
3"
/ListView>
0.5"
@+id/time_text"
00:
00/00:
00"
12sp"
Button
@+id/pre_btn"
@drawable/ic_player_prev_default"
@+id/play_btn"
1.5"
@drawable/ic_player_play_default"
@+id/next_btn"
@drawable/ic_player_next_default"
完成各种音乐播放的操作功能。
privateStringsongName="
FlyMeToTheMoon"
//音乐名称
privateTextViewmusicName;
//播放时间长度的文本
privateTextViewtimeText;
//拖动条
//播放/暂停按钮
privateButtonplayBtn;
//上一首
privateButtonpreBtn;
//下一首
privateButtonnextBtn;
//总播放时长的文本
privateStringdurationTimeStr;
//建立消息通道,以便在子线程中修改界面
privateHandlerhandler;
handler=newHandler(){
publicvoidhandleMessage(Messagemsg){
seekbar.setProgress(player.getCurrentPosition());
timeText.setText(getTextByMs(player.getCurrentPosition())+"
/"
+durationTimeStr);
};
//取得所有组件
musicName=(TextView)findViewById(R.id.music_name);
timeText=(TextView)findViewById(R.id.time_text);
playBtn=(Button)findViewById(R.id.play_btn);
preBtn=(Button)findViewById(R.id.pre_btn);
nextBtn=(Button)findViewById(R.id.next_btn);
//player.start();
//初始化拖动条的总长度
seekbar.setMax(player.getDuration());
durationTimeStr=getTextByMs(player.getDuration());
//修改歌曲标题
musicName.setText(songName);
//设置显示的播放时间
timeText.setText("
00/"
+durationTimeStr);
//加入一个多线程,通过子线程控制拖动条以及显示时间的改变
Threadt=newThread(){
publicvoidrun(){
while(true){
try{
Thread.sleep(1000);
//取得当前的播放时间位置,设置到拖动条里
if(player.isPlaying()){
//传递一个空消息,不需要有具体的消息内容,因为消息通道中只有一个固定的操作,而且不需要参数.
handler.sendEmptyMessage(0);
}catch(Exceptione){
e.printStackTrace();
}
}
t.start();
//为播放按钮加监听
playBtn.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
if(player.isPlaying()){
player.pause();
playBtn.setBackgroundResource(R.drawable.ic_player_play_default);
}else{
player.start();
playBtn.setBackgroundResource(R.drawable.ic_player_pause_default);
//开始播放
playBtn.performClick();
//加入拖动条的监听
//
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 视频 音频 播放