Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3307051
  • 博文数量: 366
  • 博客积分: 9916
  • 博客等级: 中将
  • 技术积分: 7194
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-29 23:27
个人简介

简单!

文章分类

全部博文(366)

文章存档

2013年(51)

2012年(269)

2011年(46)

分类: 嵌入式

2012-10-12 17:37:31

main.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:orientation="vertical"
  4.     android:layout_width="fill_parent"
  5.     android:layout_height="fill_parent"
  6.     >
  7. <TextView
  8.     android:layout_width="fill_parent"
  9.     android:id="@+id/volumenum" android:layout_height="fill_parent" android:gravity="center" android:text="play" android:textSize="40dp"/>
  10. </LinearLayout>

源码:
  1. package com.demo;

  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.media.AudioManager;
  5. import android.media.SoundPool;
  6. import android.os.Bundle;
  7. import android.util.Log;
  8. import android.view.View;
  9. import android.view.View.OnClickListener;
  10. import android.widget.TextView;

  11. public class VolumeControl extends Activity {
  12.     private AudioManager audioManager;
  13.     private SoundPool spool;
  14.     private int hit;

  15.     /** Called when the activity is first created. */
  16.     @Override
  17.     public void onCreate(Bundle savedInstanceState) {
  18.         super.onCreate(savedInstanceState);
  19.         setContentView(R.layout.main);
  20.         setTitle("点击play播放,使用音量加减键来调节音量!");
  21.         final TextView volumenum = (TextView) findViewById(R.id.volumenum);

  22.         // 创建对象
  23.         // 第一个参数指定音频池的最大音频流数目为10
  24.         // 第三个参数,声音品质为5
  25.         spool = new SoundPool(10, AudioManager.STREAM_SYSTEM, 10);

  26.         // 从资源或者文件截入音频流
  27.         hit = spool.load(this, R.raw.msg, 0);

  28.         volumenum.setOnClickListener(new OnClickListener() {

  29.             @Override
  30.             public void onClick(View v) {
  31.                 // TODO Auto-generated method stub
  32.                 // 播放音频,可以对左右音量分别设置,可以设置优先级,循环次数以及速率
  33.                 // 速率最高2,最低0.5,正常为1
  34.                 float volumeNum = (float) getVolume() / 7;
  35.                 int streamID = spool.play(hit, 1, 1, 0, 0, (float) 1.4);
  36.                 spool.setVolume(streamID, volumeNum, volumeNum);
  37.             }
  38.         });
  39.     }

  40.     // 获得当前系统音量 0~7
  41.     private int getVolume() {
  42.         int volume = -1;
  43.         
  44.         audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
  45.         volume = audioManager.getStreamVolume(AudioManager.STREAM_RING);
  46.         Log.i("STREAM_RING", "" + volume);
  47.         
  48.         return volume;
  49.     }
  50. }
阅读(2340) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~