`

选择音频的输出方式

阅读更多
可以选择用耳机还是扬声器播放(蓝牙的就留到下次吧),要求SDK不小于5
public class MainActivity extends Activity implements OnClickListener {

	private AudioManager mAudioManager;
	private MediaPlayer mMediaPlayer;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);

		mMediaPlayer = new MediaPlayer();
		mMediaPlayer.reset();
		try {
			File audio = new File(Environment.getExternalStorageDirectory(),
					"/Music/xxx.mp3");
			mMediaPlayer.setDataSource(audio.getAbsolutePath());
			mMediaPlayer.prepare();
			mMediaPlayer.setOnPreparedListener(new PrepareListener());
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		findViewById(R.id.btn_speaker).setOnClickListener(this);
		findViewById(R.id.btn_headset).setOnClickListener(this);
		findViewById(R.id.btn_bluetooth).setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {

		int id = v.getId();
		switch (id) {
		case R.id.btn_speaker:

//			if (!mAudioManager.isSpeakerphoneOn())
//				return;

			mAudioManager.setMode(AudioManager.ROUTE_SPEAKER);
			mAudioManager.setSpeakerphoneOn(true);

			break;
		case R.id.btn_headset:

//			if (!mAudioManager.isWiredHeadsetOn())
//				return;

			mAudioManager.setMode(AudioManager.MODE_NORMAL);
			mAudioManager.setWiredHeadsetOn(true);

			break;
		case R.id.btn_bluetooth:

			break;
		default:
			break;
		}
	}

	@Override
	protected void onDestroy() {

		// change mode back to normal
		mAudioManager.setMode(AudioManager.MODE_NORMAL);

		// release resource, important
		mMediaPlayer.stop();
		mMediaPlayer.release();
		mMediaPlayer = null;

		super.onDestroy();
	}

	private final class PrepareListener implements OnPreparedListener {

		public void onPrepared(MediaPlayer mp) {
			mMediaPlayer.start();
		}
	}
}
分享到:
评论

相关推荐

    C#控制windows音频输出设备

    1. **选择音频输出设备**: 要选择系统中的特定音频输出设备,我们可以使用winmm.dll中的`mciSendString`函数。这个函数允许我们控制多媒体控制接口(MCI),它可以操作多种多媒体设备,包括声卡。例如,我们可以...

    蓝牙音频输入输出电路

    此外,电阻“R101”、“R100”以及焊盘跳线的设计用于控制电路的功耗和音频输出状态(如静音功能)。 ### 二、蓝牙音频电路的工作原理 蓝牙音频电路通过蓝牙模块建立无线连接,将音频数据编码后以蓝牙信号的形式...

    Marantz马兰士SR6014使用说明书.pdf

    * 音频输出设置:选择音频输出方式,例如 PCM、Dolby Atmos、DTS:X 等。 * 音量调整:调整音量,包括总音量和声道音量。 视频设置 * 视频输入设置:选择视频输入来源,例如 HDMI、Component、Composite 等。 * ...

    BASS 音频输出设备自动切换

    这个功能的实现解决了这个问题,使得播放器能够实时响应系统声音设备的变更,自动将音频输出切换到用户当前选择的设备上,提高了用户体验。 实现这个功能的关键在于使用BASS的API接口,尤其是与设备管理和事件处理...

    Protues仿真51单片机的音频输出

    3. **音频输出原理**:在51单片机中实现音频输出,通常需要通过PWM(脉宽调制)技术来实现模拟信号的生成。PWM是一种数字信号处理方式,通过改变脉冲宽度来模拟不同幅度的模拟信号,进而驱动扬声器发声。51单片机的...

    c#windows修改音频默认设备

    项目描述提及"**自动获取音频输入输出设备,选择特定设备后设置成默认**",这表明代码将涉及到Windows API调用和可能的枚举操作,用于检测系统中的所有音频设备,并允许用户或程序选择一个设备作为新的默认设备。...

    海思HI35XX之---音频模块使用总结.pdf

    本文档概括了海思HI35XX音频模块的使用总结,涵盖音频输入、音频输出、音频编码、音频解码四个子模块的使用方法。音频输入和输出模块通过对HI35XX芯片SIO接口的控制实现音频输入输出功能。音频编码和解码模块提供对G...

    python实现音频添加隐写数据

    python实现音频添加隐写数据 1. 解析音频格式: ... 为了增强音频水印的鲁棒性,在通过判断音频文件的大小后选择相应的范围数添加隐写数据 从而使音频即便被截断也可通过相似度方式查看是否包含隐写数据

    音频拼接多种方式

    在实际操作中,根据具体需求和资源条件选择合适的方法,可以提高工作效率并保证音频质量。在提供的`FFmpegJointAudio`压缩包中,可能包含了一些示例文件和更详细的教程,可以进一步探索和学习。

    音频剪切工具支持多种方式

    10. **免费与付费版本**: 音频剪切工具可能有免费和付费两种版本,付费版通常提供更多的功能、无水印输出和更好的技术支持。 了解这些知识点后,你可以根据自己的需求选择合适的音频剪切工具,无论是为了个人娱乐...

    PCHiFi 音频播放 Src

    PCHiFi系统通常包括高解析度音频播放器、数字模拟转换器(DAC)、以及优质的音频输出设备。 **音频播放Src**:这里的"Src"可能指的是Source,即音源或源代码。在软件开发中,源代码是程序的原始形式,可以被编译或...

    音频通信 音频通信 音频通信 音频通信 音频通信 音频通信

    不同的编码方式在音质、压缩比和计算复杂度上有所不同,根据实际应用需求选择合适的编码方式至关重要。 2. **网络传输协议**:HTTP、TCP/IP等传统网络协议不适用于实时音频通信,因为它们无法保证数据包的实时性和...

    艾为 8736音频功放原理与应用

    它推荐使用额定功率在0.7W及以上的扬声器,以充分发挥其音频输出能力。功放芯片的功率等级直接决定了它驱动扬声器的能力,能够根据实际应用的需求选择适当的功率等级是非常重要的。 针对抑制干扰,AW8736集成了艾为...

    ubuntu蓝牙音响配对成功但在声音设置中无法设置的解决 耳机 a2dp 输出 蓝牙耳机 pactl.pdf

    PulseAudio提供了丰富的接口供用户调整音频输出设备的选择,以及进行音频播放的其他配置。当音频设置中显示设备不全时,可能需要通过PulseAudio的命令行工具pactl来手动调整和解决问题。 6. 命令行操作和系统管理:...

    高效音频功率放大器 模电课程设计资料.pdf

    我们选择了H桥型输出方式,这种结构可以使得负载上的电压浮动,从而输出接近电源电压峰值的电压,有效提高输出功率。此外,采用VMOSFET作为开关管的选择,也是基于其高输入阻抗、低导通电阻、高速开关能力等优点,...

    Android音频通信

    1. **音频输入与输出**:Android系统支持多种音频输入和输出方式,如麦克风录音和扬声器播放。AudioRecord类用于捕获音频数据,而AudioTrack类则用于播放这些数据。这两个类是Android音频处理的基础。 2. **音频流...

    pcm音频文件和wav音频文件 工具下载

    在实际应用中,如果对存储空间有较高要求,人们往往会选择压缩音频格式,如MP3、AAC等,它们通过牺牲一定的音质来大幅减小文件大小。然而,在专业音频制作、编辑或分析时,PCM和WAV这样的无损格式是首选,因为它们能...

    音频混音算法

    - **规一化混音算法**更适合于需要高质量音频输出的场合,如音乐制作等。 - **ALSA混音算法**则更适合于需要实时处理音频的场合,如在线会议系统等。 ### 结语 通过以上分析可以看出,规一化混音算法和ALSA混音...

    行业分类-设备装置-接收数字多媒体广播的设备和利用该设备输出音频的方法.zip

    8. **连接性**:介绍如何通过蓝牙、Wi-Fi或其他无线方式将音频输出到其他设备,如家庭音响系统或智能扬声器。 9. **实际应用案例**:可能包含实际设备的测试结果和用户体验反馈,以展示理论知识在实际产品中的应用...

    数字音频接口(I2S,PCM,TDM,PDM).docx

    数字音频接口(DAI)是指在板级或板间传输数字音频信号的方式。相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI 在音频电路设计中得到越来越广泛的应用。 数字音频接口的类型有多种,常见的有 I2S...

Global site tag (gtag.js) - Google Analytics