频道栏目
首页 > 资讯 > Android > 正文

[android,16]android 音乐播放器、声音池

13-12-26        来源:[db:作者]  
收藏   我要投稿

一、开发音乐播放器:

1、音乐播放器的界面文件:一个可以输入播放音乐文件路径的文本框,和四个按钮:

 

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

 

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

android:textSize="20sp" />

 

android:id="@+id/et_path"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

 

//打开界面时文本框获取焦点

 

 

android:layout_width="fill_parent"

>

android:gravity="center_horizontal"//指定组件水平居中显示

android:orientation="horizontal" >

 

android:id="@+id/play"

android:layout_width="0dip" //设置按钮为宽度为0

android:layout_height="wrap_content"

android:layout_weight="1"//设置按钮比重为1

android:text="播放" />

 

android:id="@+id/pause"

android:layout_width="0dip"

android:layout_height="wrap_content"

>

android:text="暂停" />

 

android:id="@+id/replay"

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

>

 

android:id="@+id/stop"

android:layout_width="0dip"

android:layout_height="wrap_content"

android:layout_weight="1"

android:text="停止" />

 

 

 

2、播放器的播放、重播、暂停、停止操作。

①、播放:

//创建MediaPlayer对象

MediaPlayer>

//设置播放类型

mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

//设置播放文件的路径

mPlayer.setDataSource(path);

// 注意:非常重要

mPlayer.prepare(); // 调用底层c代码 完成>

}

});

//开始播放:

mPlayer.start();

②、暂停:

//mPlayer.isPlaying()判断是否在播放

if (mPlayer !=>

>

}

/创建MediaPlayer对象

MediaPlayer>

//设置播放类型

mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

//设置播放文件的路径

mPlayer.setDataSource(path);

// 注意:非常重要

mPlayer.prepare(); // 调用底层c代码 完成>

}

});

//开始播放:

mPlayer.start();

④、停止:

if (mPlayer !=>

}

 

二、随音乐播放显示歌词:

1、先解析 歌词文件 .lrc文件。

 

①、歌词文件的样式为:

[00:01.93]小村之恋

[00:24.36]弯弯的小河青青的山冈

[00:31.53]依偎着小村庄

[00:35.82]蓝蓝的天空阵阵的花香

②、解析.lrc文件,一行行读取歌词,解析出时间和歌词, 把时间作为key,对应的歌词作为value,放到map集合中。

Map>

String>

>

>

String>

SimpleDateFormat>

Date>

System.out.println(>

Map.put(date,value );

 

2、在播放时显示歌词的具体操作:

public>

 

>

//用于修改歌词的handler

>

 

@Override

>

//将时间作为key 在map中取出歌词显示:

}

 

};

@Override

>

>

>

>

>

 

>

>

>

>

>

>

>

}

 

>

>

>

}

 

>

>

}

 

play(path);

 

break;

 

}

 

}

 

private void play(String path) {

try {

>

>

}

});

 

mPlayer.start();

>

// >

//把音频文件加载到声音池里面;返回id

//方法的参数1:上下文

参数2:指定声音资源文件

参数3:

int>

 

}

//点击开火的按钮:

public void fire(View view){

//播放声音池中声音:play()方法

方法参数1:声音的id

参数2:左声道大小,

参数3:右声道声音大小,

参数4:指定优先级,0为最低。

参数5:指定声音的播放模式,取值:0表示只播放一次,-1:永久循环播放。

参数6:指定声音播放的速率。

soundpool.play(soundid,1.0f, 1.0f, 0, 0, 1.0f);

}

 

③、play()方法的调用是异步的。

相关TAG标签
上一篇:windows phone应用程序版本升级
下一篇:ZeroMQ(java)中连接建立与重连机制
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站