访问安卓媒体流以进行音频可视化

2022-09-02 04:28:43

基本上,我想做一个音频可视化工具。我知道这是可能的,因为我的手机附带了一些动态壁纸来做到这一点。问题是,我似乎不知道如何使用Android API来做到这一点。

我的应用将选取当前正在播放的媒体流,然后根据当时正在播放的音量,它将在屏幕上显示或多或少的条形。

我该怎么做?看起来我可以使用麦克风做这样的事情,但我希望能够为音乐,播客等做这件事。


答案 1

看起来在2.3中,这里的事情发生了变化,现在有权限了

<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

aosp中有一个AudioCapture助手类,可以帮助动态壁纸正确完成。https://android.googlesource.com/platform/packages/wallpapers/MusicVisualization/+/gingerbread-release/src/com/android/musicvis/AudioCapture.java

编辑:

AOSP 中的某个导入与公共 API 不匹配。
import android.media.audiofx.Visualizer;

是的
import android.media.Visualizer;

如果它给人头痛,请确保切换。这都是2.3 api,它显然为可视化返回低分辨率音频流,但不足以录制。


答案 2

音乐可视化壁纸源可在AOSP上找到。它基本上似乎涉及调用MediaPlayer.snoop(),这是一个在Eclair中添加的未记录的方法。


推荐