Articles of 音频

Android:检测另一个应用程序已经开始播放音频

我的音乐应用程序不断在后台播放音乐,但是我希望能够检测到其他应用程序何时开始播放音频(例如YouTube应用程序),这样我就可以在我的应用程序中暂停/静音/停止音频。 这将允许用户在听音乐的同时继续浏览网页,但是如果他们希望在任何时候观看video,他们可以在没有音频冲突的情况下这样做。 一种解决方案可能是监听应用程序何时开始使用AudioManager的广播。 这样的意图行动是否存在? 编辑:如下面提供的答案,似乎有一种使用AudioManager.OnAudioFocusChangeListener检测2.2中音频焦点丢失的方法。 很棒,但有更常见的Android版本的解决方案吗? 理想情况下1.5+。

是否有可在应用程序中使用的内置/默认声音?

我试图在Android应用程序中添加一些简单的声音( 哔哔声,boop,点击等 ),所以我只是想知道Android OS或SDK中是否有任何可以使用的内置声音。 如果是这样,他们将如何被访问? 我唯一的猜测是在媒体商店或音响类中的某个地方…我很新,所以你能提供的任何帮助/提示都将非常感激。 谢谢。

PCM Raw Bytes 到Android上的音频

我目前有一个字节数组forms的PCM音频。 格式是16位小端的签名。 我想将它转换为Android上的一些可播放格式,最好是版本3.2或更高版本。 有人有关于如何做到这一点的建议吗? 我做了一些研究并尝试了下面的内容,但都没有成功。 如果有人能提出更好的方法或指出我出错的地方,我们将不胜感激。 我尝试使用正确的音频设置创建AudioFormat,但Android不支持javax.sound.sampled库。 我也尝试将PCM数据写入wave文件,但是我遇到了所有必要的wav头信息。 我也尝试使用Android提供的AudioTrack类来播放PCM数据。 但是,我似乎听不到任何声音。 这是我的方法: public void playback(){ try{ AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, 500000, AudioTrack.MODE_STATIC); audioTrack.write(audio, 0, 500000); } catch(Throwable t){ Log.d(“Audio”,”Playback Failed”); } } 任何建议,将不胜感激。

获取音频文件的持续时间

我制作了一个录音机应用程序,我想在列表视图中显示录音的持续时间。 我保存这样的录音: MediaRecorder recorder = new MediaRecorder(); recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); folder = new File(Environment.getExternalStorageDirectory() + File.separator + “Audio recordings”); String[] files = folder.list(); int number = files.length + 1; String filename = “AudioSample” + number + “.mp3”; File output = new File(Environment.getExternalStorageDirectory() + File.separator + “Audio recordings” + File.separator + filename); FileOutputStream writer = new FileOutputStream(output); […]

如何使用.wav文件模拟麦克风的音频输入

我的目标是使用.wav文件替代模拟器中的麦克风输入。 .wav文件必须由Android模拟器中的语音记录器识别和处理。 我想通过从.wav文件中提供语音命令来测试语音记录器,就像应用程序通过麦克风输入接收到它们一样。 这可能吗?

Android Media Player在后台播放,但在应用程序被杀时不会停止

我是Android新手,所以我遇到了问题。 在Android中,我希望在我的音乐播放器启动后立即播放背景音乐,并且即使活动从一个变为另一个,它也会继续播放。 我试过这段代码: MediaPlayer music = MediaPlayer.create(MainActivity.this, R.drawable.bgscore); music.start(); 但是,当用户关闭应用程序时,声音应该停止,但事实并非如此。 我怎样才能做到这一点?

为什么不能在Android中的语音呼叫上播放音频文件

这个问题似乎是以下问题的重复: 如何在android中的语音通话中播放音频文件 正在进行呼叫的背景音频 – 可能吗? 这些问题的答案表明,在Android中的语音通话中无法播放预先录制的音频。 我想知道为什么不可能? 有什么限制(硬件/软件)? 这是真的有限制还是故意做的? 我们可以改变android的源代码以使其成为可能吗?

在Android中静音全局声音

是否有一种方法可用于从应用程序按钮静音全局声音?

使用Android SDK从原始PCM数据创建WAV文件

我正在尝试使用AudioRecord类来记录WAV文件。 问题是它只提供原始PCM数据,如果我将其写入文件,则没有标题信息,因此它不会在任何媒体播放器中播放。 如何从这些原始数据创建WAV文件? 或者,有没有其他方法将Android中的声音录制到WAV文件(或者MP3)? 哦,我知道MediaRecorder可以使用,因为它不支持WAV或MP3格式。

使用Android流式传输AAC音频

据我了解,如果编码为MPEG-4或3GPP,Android将只播放AAC格式的音频。 当它在应用程序的本地时,我能够播放编码为M4A的AAC音频,但是当从服务器获取它时它会失败。 以下工作,因为m4a文件本地保存在res / raw目录中。 MediaPlayer mp = MediaPlayer.create(this, R.raw.*file*); mp.start(); 以下不起作用。 (但MP3的确如此)。 Uri uri = Uri.parse(“http://*example.com*/blah.m4a”); MediaPlayer mp = MediaPlayer.create(this, uri); mp.start(); 当m4a音频文件不是本地时,任何人都可以解释它失败的原因吗? 这是(一些)错误…… ERROR/PlayerDriver(542): Command PLAYER_INIT completed with an error or info UNKNOWN PVMFStatus ERROR/MediaPlayer(769): error (200, -32) WARN/PlayerDriver(542): PVMFInfoErrorHandlingComplete DEBUG/MediaPlayer(769): create failed: DEBUG/MediaPlayer(769): java.io.IOException: Prepare failed.: status=0xC8 DEBUG/MediaPlayer(769): at android.media.MediaPlayer.prepare(Native Method) DEBUG/MediaPlayer(769): […]