gpt4 book ai didi

android - Android 中的可视化工具输出取决于设备音量

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:15 25 4
gpt4 key购买 nike

such a question已经,但似乎建议的解决方法根本不起作用。 Visualizer 的输出仍然受到全局音量的影响,并且当音量调到最低但 MediaPlayer 仍在播放时由零组成。

这是我重现此问题的代码:

    player=new MediaPlayer();
player.setAudioSessionId(SHARED_SESSION_ID);
try {
player.setDataSource("https://example.com/song.mp3");
player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
player.prepareAsync();
}catch(Exception x){
Log.w(TAG, x);
}

equalizer=new Equalizer(0, SHARED_SESSION_ID);
equalizer.setEnabled(true);

visualizer=new Visualizer(SHARED_SESSION_ID);
int visualizerFftSize=Visualizer.getCaptureSizeRange()[1];
visualizer.setCaptureSize(visualizerFftSize);
visualizer.setDataCaptureListener(new Visualizer.OnDataCaptureListener() {
@Override
public void onWaveFormDataCapture(Visualizer visualizer, byte[] waveform, int samplingRate) {
int max=0, min=255;
for(int i=0;i<waveform.length;i++) {
int w=(int)waveform[i] & 0xFF;
max = Math.max(w, max);
min = Math.min(w, min);
}
Log.i(TAG, "wform "+max+" / "+min);
}

@Override
public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate) {
int max=0;
for(int i=0;i<fft.length;i++)
max=Math.max((int)fft[i] & 0xFF, max);
Log.i(TAG, "fft max "+max);
}
}, Visualizer.getMaxCaptureRate()/2, true, true);

visualizer.setEnabled(true);

奇怪的是,this example from ApiDemos在相同的设备(Nexus 5、Nexus 4 和 Nexus 6P)上工作得很好。我试图尽可能接近地复制它。我还尝试在初始化 Visualizer 之前或之后初始化和/或启用均衡器,但这完全没有改变。

最佳答案

我也遇到了同样的问题,谢谢你提供源码。只需要在你的Activity代码中设置如下代码setVolumeControlStream(AudioManager.STREAM_MUSIC);(比如在onCreate),它对我有用。希望能帮到你。

关于android - Android 中的可视化工具输出取决于设备音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34467423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com