【转】android播放音频文件

来源:互联网 发布:淘宝网店模板制作教程 编辑:程序博客网 时间:2024/06/08 01:14

package com.google.activity.voice;

import android.content.Context;
import android.media.AudioManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ProgressBar;

import com.google.Main;
import com.google.R;

 

public class IndexActivity extends Main {

 /** 日志TAG */
 private static final String TAG = ">>>>>>>> IndexActivity.java <<<<<<<";
 /** 显示当前的设置 */
 private ImageView mImageView;
 /** 显示可用于设置声音的按钮  调大、调小、正常、静音、震动  */
 private ImageButton mBt_up,mBt_down,mBt_normal,mBt_mute,mBt_vibrate;
 /** 设置声音大小的进展条 */
 private ProgressBar mProgressBar;
 /** 管理音频 */
 private AudioManager mAM;
 /** 初始前声音的大小 */
 private int volume = 0;
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  
  setContentView(R.layout.volume);
  
  setUI();
  setAction();
  
 }
 
 /** 获取控件  */
 private  void setUI() {
  mImageView = (ImageView) findViewById(R.id.myImage);
  mBt_down = (ImageButton) findViewById(R.id.bt_down);
  mBt_up = (ImageButton) findViewById(R.id.bt_up);
  mBt_mute = (ImageButton) findViewById(R.id.bt_mute);
  mBt_normal = (ImageButton)findViewById(R.id.bt_normal);
  mBt_vibrate = (ImageButton) findViewById(R.id.bt_vibrate);
  
  mProgressBar = (ProgressBar) findViewById(R.id.mProgress);
 }
 
 /** 设置界面事件 */
 private void setAction(){
  mAM = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
  //设置初始的手机铃声音量
  volume = mAM.getStreamVolume(AudioManager.STREAM_RING);
  mProgressBar.setProgress(volume);
  
  int mode = mAM.getRingerMode();
  
  setMode(mode);
  
  mBt_down.setOnClickListener(listener);
  mBt_mute.setOnClickListener(listener);
  mBt_normal.setOnClickListener(listener);
  mBt_up.setOnClickListener(listener);
  mBt_vibrate.setOnClickListener(listener);
 }
 
 private OnClickListener listener = new OnClickListener() {
  
  @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   switch (v.getId())
   { //声音减小
   case R.id.bt_down:
    mAM.adjustVolume(AudioManager.ADJUST_LOWER,0);
    volume = mAM.getStreamVolume(AudioManager.STREAM_RING);
    mProgressBar.setProgress(volume);
    setMode(mAM.getRingerMode());
    break;
    
    //声音调大
   case R.id.bt_up:
    mAM.adjustVolume(AudioManager.ADJUST_RAISE,0);
    volume = mAM.getStreamVolume(AudioManager.STREAM_RING);
    mProgressBar.setProgress(volume);
    setMode(mAM.getRingerMode());
    break;
    
    //静音模式
   case R.id.bt_mute:
    mAM.setRingerMode(AudioManager.RINGER_MODE_SILENT);
    volume = mAM.getStreamMaxVolume(AudioManager.STREAM_RING);
    mProgressBar.setProgress(volume);
    setMode(mAM.getRingerMode());
    break;
    
    //正常模式
   case R.id.bt_normal:
    mAM.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
    volume = mAM.getStreamMaxVolume(AudioManager.STREAM_RING);
    mProgressBar.setProgress(volume);
    setMode(mAM.getRingerMode());
    break;
    
    //振动模式
   case R.id.bt_vibrate:
    mAM.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
    volume = mAM.getStreamMaxVolume(AudioManager.STREAM_RING);
    mProgressBar.setProgress(volume);
    setMode(mAM.getRingerMode());
    break;
   default:
    break;
   }
  }
 };
 
 /***
  * 设置音频模式
  * @param mode
  */
 private void setMode(int mode){
  Log.i(TAG, "current mode= "+ mode);
  if(mode == AudioManager.RINGER_MODE_NORMAL)//正常模式
  {
   mImageView.setImageResource(R.drawable.voice_normal);
  }
  else if (mode == AudioManager.RINGER_MODE_SILENT)//静音 模式
  {
   mImageView.setImageResource(R.drawable.voice_mute);
  }
  else if( mode == AudioManager.RINGER_MODE_VIBRATE)//振动模式
  {
   mImageView.setImageResource(R.drawable.voice_vibrate);
  }
  
  
 }
 
}

0 0