有基于androidstudio2.0教程 studio 的音乐播放器开发教程吗?

君,已阅读到文档的结尾了呢~~
基于Android音乐播放器的设计与..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于Android音乐播放器的设计与实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口您所在的位置: &
Android Studio使用教程
Android Studio使用教程
最近Google的在Google I/O大会上推出了一款新的开发工具――android studio。这是一款基于intellij IDE的开发工具,使用Gradle构建,相信做过java的童鞋们都知道这个工具。今天俺安装了下尝尝鲜,打开一看其实和之前的intellij ide创建Android工程是一样的,就是有做了些简化。废话不多说开始我们的教程哈,供大家尝鲜。
最近Google的在Google I/O大会上推出了一款新的开发工具&&android studio。这是一款基于intellij
IDE的开发工具,使用Gradle构建,相信做过java的童鞋们都知道这个工具。今天俺安装了下尝尝鲜,打开一看其实和之前的intellij
ide创建Android工程是一样的,就是有做了些简化。废话不多说开始我们的教程哈,供大家尝鲜。
1、首先你需要到android的官网上下载它,然后安装。
2、安装和平常一样就是一步步的往下走就好了。看下安装后的目录结构
我们可以看到以上的就是安装后的目录,其中我们可以看到&sdk&的文件夹,这里面就是android的SDK,这次Google直接将sdk打包放在了开发工具下面了。
然后我们点击&studio.exe&即可以运行起来了。
498)this.width=498;' onmousewheel = 'javascript:return big(this)' border="0" src="/wyfs01/M01/09/B6/wKioJlGVpUfBjXJ3AABOLOUpiJI102.jpg" alt="" />
双击后,弹出一个界面要我们创建一个新的project。
Ps:这里说下这个project,android studio的 这里的project和eclipse中的不一样,这里&new project&相当于创建一个新的workspace工作空间。而module其实就是eclipse所创建的project,刚刚开始使用的可能会不习惯。默认创建
3、接下来就是开始创建项目了。
这一步和eclipse创建项目其实就是一样的啦。唯一不一样的就是有个module name。
下面稍微解释。
Application name:应用名称
module name: 项目的名称(创建下面会自动创建同名的project也就是workspace的名称)
这里我把theme选为none
接下来一步步下去就和eclipse一样了。
创建完成后的目录是这样的&&
打开布局文件开下,发现右边是可以实时看到布局的情况啊,这个功能感觉还不错。
运行起来看下效果吧:
说下这一排吧:MyFirstAndroid的旁边绿色的三角形是运行程序的,右边的甲壳虫是debug程序的。
扳手图标是设置,右边是项目结构,再右边是创建AVD也就是模拟器。其他的eclipse是一样的图标。
运行起来的效果如下:
接下来说下怎么创建一个新的module,然后再次运行起来。
选择File-&new module出现的界面,选择android application选择下一步,就出现了和刚刚一样的流程了,一步步创建完成即可。
我们看到多了个secondAndroid的项目。
如何运行呢,选择
的edit configurations,点击左边的绿色&+&号,选择android application。
出现下图情况,
填写name,选择module,以及模拟器,然后就可以选择你要运行的应用运行起来即可。
嘿嘿写的有点儿多,给大家尝尝鲜哈。Android studio目前才1.0的版本,建议大家还是继续使用eclipse,相对应来说比较稳定。有时间可以玩玩哈。
不早了,就写到这里吧。
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
日至17日,Google I/O 2013开发者大会在旧金山召开,
既然强大的Android Studio来了,有什么理由不去用呢?
大家都知道iOS的发展之迅速,这对于开发者来说,无疑
越来越多的web设计师提出了移动优先的口号,而随着硬
北京时间日,苹果在加利福尼亚召开新品发
20多年以来,《软件工程:实践者的研究方法》一书是最受学生和行业专业人员欢迎的软件工程指南。它在全面而系统、概括而清晰地介
Windows Phone专家
Android开发专家
51CTO旗下网站Android 音乐播放器的开发教程(六)service的运用及音乐列表点击播放-android100学习网
Android 音乐播放器的开发教程(六)service的运用及音乐列表点击播放
这是转载的一个系列文章,觉得很不错供大家学习参考: Android 音乐播放器的开发教程(一) Android 音乐播放器的开发教程(二)反编译apk Android 音乐播放器的开发教程(三) 小
这是转载的一个系列文章,觉得很不错供大家学习参考:
Android 音乐播放器的开发教程(一)
Android 音乐播放器的开发教程(二)反编译apk
Android 音乐播放器的开发教程(三) 小卷毛播放器的主界面开发
Android 音乐播放器的开发教程(四)Activity和Fragment的通信以及Fragment的切换
Android 音乐播放器的开发教程(五)本地音乐的获取及显示
Android 音乐播放器的开发教程(六)service的运用及音乐列表点击播放
Android 音乐播放器的开发教程(七)运用Broadcast实现service与activity的通信
Android 音乐播放器的开发教程(八)歌曲的切换和进度条的拖动
Android 音乐播放器的开发教程(九) 歌词的显示
Android 音乐播放器的开发教程(十)通知栏Notification的使用
Android 音乐播放器的开发教程(十一)SQLite的使用及最近播放的实现
Android 音乐播放器的开发教程(十二)SQLite的使用及我的最爱歌曲的实现
按照前几篇博客的步骤,应该能看到自己手机里的音乐列表了,但是现在还只能看,不能点,还需要再给ListView添加点击事件的监听,接着启动一个Service来播放音乐,service是android四大组件之一,在官方的文档上是这样解释的:
A Service is an application component that can perform long-running
operations in the background and does not provide a user interface.
Another application component can start a service and it will continue
to run in the background even if the user switches to another
application. Additionally, a component can bind to a service to interact
with it and even perform interprocess communication (IPC). For example,
a service might handle network transactions, play music, perform file
I/O, or interact with a content provider, all from the background.
也就是说,Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件。其他应用组件能够启动Service,并且当用户切换到
另外的应用场景,Service将持续在后台运行。另外,一个组件能够绑定到一个service与之交互(IPC机制),例如,一个service可能会
处理网络操作,播放音乐,操作文件I/O或者与内容提供者(content provider)交互,所有这些活动都是在后台进行。
我们先来给列表注册监听器,由于列表是显示在MyMusicFragment上面的,故注册监听器也应该在MyMusicFragment.java这个文件里面注册了,下面给出代码,红色部分为改动的地方:
package com.example.dada.
import android.app.A
import android.net.U
import android.os.B
import android.app.F
import android.view.LayoutI
import android.view.V
import android.view.ViewG
import android.widget.AdapterV
import android.widget.ListV
import java.util.L
public class MyMusicFragment extends Fragment {
private FindS
//查找歌曲的类的实例
private Activity MyA
private List&Mp3Info& mp3I
private MusicListAdapter musicListA
private OnFragmentInteractionListener mL
public static MyMusicFragment newInstance() {
MyMusicFragment fragment = new MyMusicFragment();
Bundle args = new Bundle();
fragment.setArguments(args);
public MyMusicFragment() {
// Required empty public constructor
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyActivity = getActivity();
finder = new FindSongs();
mp3Infos = finder.getMp3Infos(MyActivity.getContentResolver());
musicListAdapter = new MusicListAdapter(MyActivity.getApplicationContext(),mp3Infos);
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
finder = new FindSongs();
View rootView = inflater.inflate(R.layout.fragment_my_music, container, false);
切换至我的音乐Fragment按钮监器
调用了在activity中已经重写了的方法onMyMusicFragmentInteraction
rootView.findViewById(R.id.top_layout_right_ImageView).
setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mListener.onMyMusicFragmentInteraction(AppConstant.PlayerMsg.BACK_TO_MAIN_FRAGMENT);
音乐列表的点击监听器
点击后调用的方法,是一个回调方法,用来告诉activity
列表里面的哪个项被点击了
让activity做出反应
((ListView)rootView.findViewById(R.id.music_list)).
setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView&?& parent, View view, int position, long id) {
if (mp3Infos != null) {
mListener.onMyMusicFragmentInteraction(AppConstant.PlayerMsg.LIST_CLICK, position);
finder.setListAdpter(MyActivity.getApplicationContext(),
mp3Infos,(ListView)rootView.findViewById(R.id.music_list));
return rootV
// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed() {
if (mListener != null) {
public void onAttach(Activity activity) {
super.onAttach(activity);
mListener = (OnFragmentInteractionListener)
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnFragmentInteractionListener");
public void onDetach() {
super.onDetach();
mListener =
public interface OnFragmentInteractionListener {
public void onMyMusicFragmentInteraction(int msg);
&/span&&span style="color:#ff0000;"& public void onMyMusicFragmentInteraction(int msg,int position);
//这个方法要在MainActivity中再次重写一遍
上面的监听器注册完毕之后,就换到MainActivity.java中去对点击时间做出处理,启动一个service.我们需要先在MainActivity中写一个初始化service的方法,MainActivity代码如下,红色部分为修改的部分:
package com.example.dada.
import android.app.FragmentM
import android.app.FragmentT
import android.content.I
import android.net.U
import android.support.v7.app.ActionBarA
import android.os.B
import android.view.M
import android.view.MenuI
import android.widget.ImageB
import java.util.L
public class MainActivity extends ActionBarActivity
implements MainFragment.OnFragmentInteractionListener,
MyMusicFragment.OnFragmentInteractionListener{
private boolean isP
//记录当前播放器的状态
private FragmentManager fragmentM
private FragmentTransaction fragmentT
private MyMusicFragment myMusicF
private MainFragment mainF
private FindS
//查找歌曲的类
public static List&Mp3Info& mp3I
//歌曲列表
public static int music_
//音乐的位置
private ImageButton play_
//播放按钮控件&/span&
这个方法是activity和fragment通信的一种方法
在MainFragment中调用这个方法,可以在activity中做出相应的反应
public void onMainFragmentInteraction(int msg){
对其中的参数msg做出判断,如果为CHANGE_TO_MY_MUSIC_FRAGMENT
则执行跳转
if(msg == AppConstant.PlayerMsg.CHANGE_TO_MY_MUSIC_FRAGMENT){
在这里并没有直接切换Fragment
而是调用了activity实现MyMusicFragment的那个接口
对后面的开发能带来一点便利之处
onMyMusicFragmentInteraction(AppConstant.PlayerMsg.CHANGE_TO_MY_MUSIC_FRAGMENT);
public void onMyMusicFragmentInteraction(int msg){
myMusicFragment = new MyMusicFragment();
//创建了MyMusicFragment的实例
FragmentManager fragmentManager = getFragmentManager();
//得到FragmentManager
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); //得到fragmentTransaction
if(msg == AppConstant.PlayerMsg.CHANGE_TO_MY_MUSIC_FRAGMENT){
fragmentTransaction.replace(R.id.fragment_layout, myMusicFragment);
fragmentTransaction.addToBackStack(null);
//这句话是将被替换的MainFragment加入到一个专门存放fragment的栈中,在回退的时候显示上一个Fragment
if(msg == AppConstant.PlayerMsg.BACK_TO_MAIN_FRAGMENT){
fragmentTransaction.replace(R.id.fragment_layout, mainFragment);
fragmentTransaction.addToBackStack(null);
public void onMyMusicFragmentInteraction(int msg,int position){
if(msg == AppConstant.PlayerMsg.LIST_CLICK){
if (mp3Infos != null) {
initService(position);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
music_position = 0;
finder = new FindSongs();
mp3Infos = finder.getMp3Infos(getContentResolver());
play_button = (ImageButton)findViewById(R.id.play_button);
mainFragment = new MainFragment();
//创建了刚才定义的MainFragment实例
fragmentManager = getFragmentManager();
//得到FragmentManager
fragmentTransaction = fragmentManager.beginTransaction();
//得到fragmentTransaction,用于管理fragment的切换
fragmentTransaction.replace(R.id.fragment_layout, mainFragment).commit();
//将MainActivity里的布局模块fragment_layout替换为mainFragment
public boolean onCreateOptionsMenu(Menu menu) {
// I this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return super.onOptionsItemSelected(item);
private void initService(int position) {
music_position =
Mp3Info mp3Info = mp3Infos.get(position);
这里新建了一个Intent
里面存放各种即将传给Service的数据
要启动自定义PlayerService类
还需要在AndroidManifest中加入如下代码
android:name="com.example.dada.myapplication.PlayerService"
android:exported="false"
&/service&
Intent intent = new Intent("munication.MSG_ACTION");
play_button.setImageResource(R.drawable.pause_photo);
intent.putExtra("url", mp3Info.getUrl());
intent.putExtra("title", mp3Info.getTitle());
intent.putExtra("artist", mp3Info.getArtist());
intent.putExtra("album", mp3Info.getAlbum());
intent.putExtra("album_id", mp3Info.getAlbum_id());
intent.putExtra("MSG", AppConstant.PlayerMsg.PLAY_MSG);
intent.setClass(MainActivity.this, PlayerService.class);
startService(intent);
上面的startService(intent)是启动service的一种方法,将intent传给新启动的PlayerService,接下来
就是自定义的一个PlayerService类,里面对传进来的intent进行各种判断和处理.新建一个java类,名为
PlayerService.java,代码如下:
package com.example.dada.
import android.app.N
import android.app.NotificationM
import android.app.PendingI
import android.app.S
import android.content.BroadcastR
import android.content.C
import android.content.I
import android.content.IntentF
import android.media.MediaP
import android.os.H
import android.os.IB
import android.os.L
import android.os.M
import android.view.animation.AnimationU
import android.widget.RemoteV
import java.io.IOE
import java.util.ArrayL
import java.util.L
public class PlayerService extends Service implements AppConstant {
private int current_
private String musicP
private String music_
private String music_
private String notification_
public IBinder onBind(Intent intent) {
onStartCommand()方法就是刚启动service时调用的一个方法
里面第一个参数intent就是在activity中的那个intent
因此里面包含着被点击的歌曲相关信息
public int onStartCommand(Intent intent, int flags, int startId) {
public static MediaPlayer mediaPlayer = new MediaPlayer();
int msg = intent.getIntExtra("MSG", 0);
musicPath = intent.getStringExtra("url");
//从intent中拿出歌曲的路径
if (msg == AppConstant.PlayerMsg.PLAY_MSG) {
playMusic(0);
} catch (Exception e) {
e.printStackTrace();
private void playMusic(int position) {
mediaPlayer.reset();
mediaPlayer.setDataSource(musicPath);
mediaPlayer.prepare();
mediaPlayer.setOnPreparedListener(new MyPreparedListener(position));
} catch (IOException e) {
e.printStackTrace();
private class MyPreparedListener implements MediaPlayer.OnPreparedListener {
public MyPreparedListener(int position) {
this.position =
public void onPrepared(MediaPlayer mp) {
if (position & 0)
mediaPlayer.seekTo(position);
mediaPlayer.start();
private void stopMusic() {
if (mediaPlayer != null) {
mediaPlayer.pause();
public void onDestory() {
if (mediaPlayer != null) {
mediaPlayer.stop();
mediaPlayer.release();
上面的函数命名也都很简单,相信大家能够看懂,如果有什么问题,直接给我留言把,我会解答的哈......
做到了这一步,现在的播放器就可以点击并且播放歌曲了,点什么唱什么有木有,但是还是觉得怪怪的对不对,因为还不能暂停和切歌,不要担心,下一篇的博客中,将继续介绍如何把按钮的监听事件给加上去,到时候播放器的功能就差不多咯.今天就说这么多了,88基于Android音乐播放器_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
基于Android音乐播放器
上传于||暂无简介
大小:1.33MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢毕业论文――基于android平台的音乐播放器_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
毕业论文――基于android平台的音乐播放器
上传于||文档简介
&&毕​业​论​文​―​―​基​于​a​n​d​r​o​i​d​平​台​的​音​乐​播​放​器
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩39页未读,继续阅读
你可能喜欢

我要回帖

更多关于 android studio2 教程 的文章

 

随机推荐