Android开发之控制手机音频

本实例通过MediaPlayer播放一首音乐并通过AudioManager控制手机音频,关于AudioManager的详解可参照:Android开发之AudioManager(音频管理器)详解

程序运行效果图:



实例代码:


package com.jph.audiomanagerdemo;

import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.app.Service;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ToggleButton;
/**
 * Describe:</br>
 * 控制数据音频
 * 本实例通过MediaPlayer播放一首音乐并
 * 通过AudioManager控制手机音频
 * */
public class AudioManagerDemo extends Activity {
	Button btnPlay,btnUp,btnDown;
	ToggleButton btnMute;
	AudioManager aManager;
	MediaPlayer mPlayer;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		btnDown=(Button)findViewById(R.id.btnDown);
		btnPlay=(Button)findViewById(R.id.btnPlay);
		btnUp=(Button)findViewById(R.id.btnUp);
		btnMute=(ToggleButton)findViewById(R.id.btnMute);
		//初始化AudioManager
		aManager=(AudioManager) getSystemService(Service.AUDIO_SERVICE);
		OnClickListener listener=new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				switch (v.getId()) {
				case R.id.btnPlay:
					//初始化MediaPlayer为播放音乐做准备
					mPlayer=MediaPlayer.create(
							AudioManagerDemo.this, R.raw.music);
					//设置音乐循环播放
					mPlayer.setLooping(true);
					//播放
					mPlayer.start();
					break;
				case R.id.btnUp:
					//指定调节音乐的音频为增大,并显示音量图形
					aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
							AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
					break;
				case R.id.btnDown:
					//指定调节音乐的音频为减小,并显示音量图形
					aManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
							AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
					break;
				default:
					break;
				}
			}
		};
		//为按钮添加监听器
		btnDown.setOnClickListener(listener);
		btnPlay.setOnClickListener(listener);
		btnUp.setOnClickListener(listener);
		btnMute.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			@Override
			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
				// TODO Auto-generated method stub
				//设置音乐静音
				aManager.setStreamMute(AudioManager.STREAM_MUSIC, isChecked);
			}
		});
	}
}

main.xml


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/btnPlay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="播放"/>
    <Button
        android:id="@+id/btnUp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_below="@+id/btnPlay"
        android:text="增大音量"/>
    <Button
        android:id="@+id/btnDown"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_below="@+id/btnUp"
        android:text="减小音量"/>
    <ToggleButton android:id="@+id/btnMute"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_below="@+id/btnDown"
        android:textOn="关闭静音"
        android:textOff="开启静音"/>

</RelativeLayout>

Android开发之控制手机音频,布布扣,bubuko.com

时间: 2024-09-30 11:22:59

Android开发之控制手机音频的相关文章

(转)解决android开发人员,手机app图标显示不正确问题

android程序更换图标安装后不变解决办法 最近在搞android的时候发现,一开始程序使用系统默认图标,等到应用发布的时候要更换图标,结果在测试机上图标就是不变,其他手机和模拟器上都更新了图标. 测试机是小米,据说这个问题只在小米上会出现.网上查了原因说是miui会缓存图标,并且提供了两个解决方法 1.进入目录  /data/system/customized_icons 下,找到你原来的旧图标,删除即可.需要root权限 2.把当前的工程换一个包名,重新安装即可.换了包名等于是一个新的应用

Android开发之获取手机SIM卡信息

TelephonyManager是一个管理手机通话状态.电话网络信息的服务类.该类提供了大量的getXxx(),方法获取电话网络的相关信息. TelephonyManager类概述: 可用于訪问有关设备上的电话服务信息. 应用程序能够使用这个类的方法来确定电话服务和状态,以及訪问某些类型的用户信息.应用程序还能够注冊一个侦听器以接收的电话状态变化通知. 你不能直接实例化这个类;相反,你能够通过Context.getSystemService(Context.TELEPHONY_SERVICE)方

Android开发之仿手机卫士悬浮窗效果

基本的实现原理,这种桌面悬浮窗的效果很类似与Widget,但是它比Widget要灵活的多.主要是通过WindowManager这个类来实现的,调用这个类的addView方法用于添加一个悬浮窗,updateViewLayout方法用于更新悬浮窗的参数,removeView用于移除悬浮窗.其中悬浮窗的参数这里有必要详细说明一下. WindowManager.LayoutParams这个类用于提供悬浮窗所需的参数,其中有几个经常会用到的变量: type值用于确定悬浮窗的类型,一般设为2002,表示在所

Android开发之控制Toast的开启与关闭

开发这个程序之前先解释一下,为什么Toast信息提示框在显示一定时间后会自己主动消失?由于在Android系统中有一个Toast队列,系统会依次从这个队列中取出一个Toast,并显示它.在显示了指定时间之后,便关闭它.那么可不能够让Toast信息提示框一直显示呢?这个要求对于Toast来说有点强人所难了,由于,Toast本身并没有提供这个功能.那么怎么才干让Toast一直显示,并在我们的控制之下关闭呢?代码是死的,人是活的.以下就叫代码说话: 看一下Toast的show方法的源代码: publi

Android开发之获取手机通讯录

获取手机通讯录是Android最常用的小功能,今天自学到了,记下来,主要是通过系统自带的内容提供者提供的数据,我们使用内容接收者获取相应的数据到cursor中,然后获取对应data表中的字段,相关字段代表什么含义,只能自己去查了. 下面是手机通讯录列表的代码,仅供参考: package com.andy.phonecontact; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import

Android开发socket通信——手机做server端C/S架构实现

每一部智能手机都是一部微型电脑,在学校里最喜欢的就是找上十个八个同学一起局域网内开几局dota,突然想到,拿手机C一个游戏来玩怎样,不用连wifi.不用开数据,几部手机选一个做主机,其他手机连上它的热点,便可以互动起来游戏搞起来了,多开心~~ 实际实现过程中发现拿手机本身做server的手段还真是很少有人使用,网上也很少有现成的解决方案,经过一番摸索,简单实现了手机自身做server(可兼做客户端)的socket通信功能,写出来请大家指导一下,也是简单梳理一下方便日后复用. 遇到的最大问题可能是

【原创】Android开发使用华为手机调试logcat没有应用输出信息

输入 *#*#2846579#*#* 点击project Menu点击后台 1.设置logcat 2. Dump & Log",打开开关"打开Dump & Log" 3.重启机器.logcat显示日志的输出

Android开发之监听手机来电

TelephonyManager是一个管理手机通话状态.电话网络信息的服务类,该类提供了大量的getXxx(),方法获取电话网络的相关信息.关于TelephonyManager的详解可以参照:Android开发之获取手机SIM卡信息 程序运行结果: log_phone文件: 应用实例: package com.jph.monitorphone; import java.io.FileNotFoundException; import java.io.FileOutputStream; impor

Android 开发知识小集

XML文件 xml其实是一个博大精深的东西呐.. 这里我就简单写一点,慢慢加: 关于color.xml,转载自:http://blog.sina.com.cn/s/blog_4e60b09d01015jcp.html <?xml version="1.0" encoding="utf-8" ?> <resources> <color name="white">#FFFFFF</color><!