在Android平台上实现一个播放音频文件还是比较简单的,本文将使用Android权威指南的hellomoon例子来介绍下如何构建播放音频项目。首先新建一个Android项目,本例中使用Android studio为例。在向导结束后,会创建一个默认的activity,将此类 HelloMoonActivity,并修改集成基类 FragmentActivity,创建后并修改代码如下:

package com.example.hehao.hellomoon;import android.support.v4.app.FragmentActivity;import android.os.Bundle;public class HelloMoonActivity extends FragmentActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_hello_moon);    }}
通过这段代码,系统会载入activity_hello_moon布局文件,在这个布局文件中,我们只声名一个fragment,并制定name属性,这个属性实例化的fragment,此布局文件如下:

<?xml version="1.0" encoding="utf-8"?>

通过上面的布局文件,可以看出实例化了HelloMoonFragment类,接下来我们来编写此类文件,并创建此文件的布局类,由于要实现播放音频文件,所以布局文件应该有播放和停止按钮,此布局使用TableLayout布局,并使用了一个阿姆斯特朗登月的图片作为背景图片,此布局文件如下:

<?xml version="1.0" encoding="utf-8"?>                    

下面,需要我们编写相应的fragment类

package com.example.hehao.hellomoon;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.Button;/** * Created by 浩 on 2016/12/26. */public class HelloMoonFragment extends Fragment {    private AudioPlayer mPlayer = new AudioPlayer();    private Button mPlayButton;    private Button mStopButton;    @Override    public void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setRetainInstance(true);    }    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View v = inflater.inflate(R.layout.fragment_hello_moon,container,false);        mPlayButton =(Button)v.findViewById(R.id.hellomoon_playButton);        mPlayButton.setOnClickListener(new View.OnClickListener(){            @Override            public void onClick(View v) {                mPlayer.play(getActivity());            }        });        mStopButton =(Button)v.findViewById(R.id.hellomoon_stopButton);        mStopButton.setOnClickListener(new View.OnClickListener(){            @Override            public void onClick(View v) {                mPlayer.stop();            }        });        return v;    }    @Override    public void onDestroyView() {        super.onDestroy();        mPlayer.stop();    }}

此fragment实例类中使用布局文件定义的播放和停止按钮,并添加相应的按钮监听事件,此处不再赘述,此类中使用另外定义的AudioPlayer类,此处贴出:

/** * Created by 浩 on 2016/12/26. */public class AudioPlayer {    private MediaPlayer mPlayer;    public void stop(){        if(mPlayer!=null){            mPlayer.release();            mPlayer=null;        }    }    public void play(Context c){        stop();        mPlayer = MediaPlayer.create(c,R.raw.one_small_step);        mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {            @Override            public void onCompletion(MediaPlayer mp) {                stop();            }        });        mPlayer.start();    }}








更多相关文章

  1. 箭头函数的基础使用
  2. NPM 和webpack 的基础使用
  3. Python list sort方法的具体使用
  4. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  5. Android(安卓)弹出全局窗体
  6. android学习小结3
  7. Android中Notification的使用(一)
  8. Android(安卓)Files的文件读取解析+代码案例
  9. Android程序中使用java代码控制UI界面

随机推荐

  1. Android(安卓)内存泄漏调试
  2. Android(安卓)开发中使用 SQLite 数据库
  3. Android(安卓)滑动效果高级篇(七)—— 华丽
  4. Android(安卓)事件分发机制总结
  5. Android的4种文件类型Java,class,dex,apk
  6. android 数据库sqlite的使用
  7. 【幻灯片分享】Android消息推送实现 | 友
  8. Android中的13种Drawable小结
  9. Android跨进程通信之小例子(一)
  10. android 笔记 --- 自定义Android主题风格