标签: equalizer

如何为android创建均衡器

我想为android创建简单的均衡器.我该怎么做?

尝试在MediaPlayer类中找到一些方法.但我所有的尝试都失败了.

media android equalizer

18
推荐指数
2
解决办法
3万
查看次数

即使api> = 9,也不总是支持均衡器?

在启用均衡器功能之前,我检查api级别以确保它等于或大于9.从我从用户那里获得的报告中,似乎抛出了一些异常:

代码 eq = new Equalizer(0, mp.getAudioSessionId())可以提出:

Caused by: java.lang.UnsupportedOperationException: Effect library not loaded
at android.media.audiofx.AudioEffect.<init>(AudioEffect.java:355)
at android.media.audiofx.Equalizer.<init>(Equalizer.java:149)
Run Code Online (Sandbox Code Playgroud)

并且代码eq.getBandLevelRange()可以引发:

Caused by: java.lang.UnsupportedOperationException: AudioEffect: invalid parameter operation
at android.media.audiofx.AudioEffect.checkStatus(AudioEffect.java:1182)
at android.media.audiofx.Equalizer.getBandLevelRange(Equalizer.java:206)
Run Code Online (Sandbox Code Playgroud)

我不知道是否有解决方案,如果不是,我可以捕获这些异常并禁用均衡器,但我需要知道究竟是什么造成了这种情况,所以我可以通知我的用户而不会让他们感到沮丧.

谢谢你的帮助

android operation equalizer audioeffect

12
推荐指数
1
解决办法
2376
查看次数

使用Web Audio API创建10波段均衡器

我正试着用Web Audio API来重新创建类似
Winamp的10波段均衡器.

Winamp的10频段均衡器

据我所知,我要创建10个双二阶滤波器,设置其type2(一个带通滤波器),并设置其frequency[60, 170, 310, 600, 1000, 3000, 6000, 12000, 14000, 16000]分别.有一次,我已经做到了(这里的地方,我开始有点糊涂了),那么我会创建一个单独的增益节点对每个频率"带",并将其值绑定到一个滑块.

<input id="someFreqBand" type="range" min="-12" max="12" step="0.1" value="0" onchange="slide()"/>
Run Code Online (Sandbox Code Playgroud)

假设所有这些都是正确的,那么唯一剩下的步骤是将所有10个增益节点连接到音频上下文destination(我想这将采用所有10个频率"频带"并将它们混合/同步回来).这是创建Web Audio 10波段均衡器的正确方法吗?

我很困惑的主要问题是我如何将源"连接"到10个频带滤波器(+相关增益节点),因为所有节点只有一个输入或输出(包括目的地).

javascript equalizer html5-audio web-audio-api

12
推荐指数
2
解决办法
7096
查看次数

均衡器 - 未加载效果库

我几乎相同的问题,其中描述这里,答案在这个职位并不能帮助我,我立即释放我的乐队均衡水平设置之后.它在我的4.0.4设备上运行良好,它在朋友的2.3.5设备上运行良好,它在一小部分设备上崩溃,并且在这些设备上运行哪个版本的android无关紧要.

所以有错误

Equalizer mEqualizer = new Equalizer(0, mediaPlayer.getAudioSessionId());

java.lang.UnsupportedOperationException: Effect library not loaded
        at android.media.audiofx.AudioEffect.<init>(AudioEffect.java:355)
        at android.media.audiofx.Equalizer.<init>(Equalizer.java:149)
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个问题,有什么建议吗?

android equalizer media-player

10
推荐指数
1
解决办法
1647
查看次数

适用于API级别的Android均衡器<9

我正在寻找一种在我的应用程序中使用均衡器的方法,它不依赖于android.media.audiofx包,特别是android.media.audiofx.均衡器类,因为它们仅适用于api级别> 9.

有没有人知道在android下运行良好的本地库?我找到了mpg123,但似乎这个库非常慢.或者是否有其他方法来实现没有本机库的均衡器?

media java-native-interface android equalizer

8
推荐指数
1
解决办法
1314
查看次数

如何在使用AVPlayer播放音频时添加iPod EQ?

我可以使用AVPlayer类从iPod库播放歌曲.现在我想要做的是将均衡器插入到产生的音频中.

有人经历过这样的经历吗?

equalizer ios avplayer

8
推荐指数
1
解决办法
2271
查看次数

如何实现均衡器

我知道有很多关于均衡器的问题,但是我没有得到我想要的东西.我想要做的是一个均衡器,用于修改音频样本,如:

equalizer.eqAudio(audiosamples, band, gain)
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是我想要的确切接口,因为我在实现它们方面对DSP知之甚少(我使用过滤器,限制器,压缩器但没有制造它们).

所以谷歌搜索我读到我必须对样本进行FFT,这样我得到每个频率范围的数据而不是幅度,按照我想要的方式处理它,然后进行FFT的反转,这样我再次得到音频样本的结果.我寻找了这个FFT的实现,并找到了JTransform for Java.该库具有称为离散余弦变换(DCT)的FFT相关算法的实现.

我的问题是:

  • 好吧,我是以正确的方式吗?
  • 由于FFT给出了有关频率的数据,我应该将一大块样本传递给FFT算法.这个块一定要多大?
  • 是否有一本关于DSP编程的好书可以解释均衡器?

谢谢!

java signal-processing fft equalizer

8
推荐指数
2
解决办法
2万
查看次数

如何在音频均衡器中添加立体声,高音选项?

我正在尝试小型音频歌曲均衡器.我想在Poweramp播放器中加入高音,立体声等选项.

poweramp音乐播放器的图像

我成功实现了5个频段的equlizer如下: -

public class FragmentEqualizer extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        super.onCreateView(inflater,container,savedInstanceState);

        equalizer = new EQ(getActivity(), new Equalizer(0,com.androidhive.musicplayer.AndroidBuildingMusicPlayerActivity.mp.getAudioSessionId()));
       for(Bar bar : eqBars)
            bar.setActiveEQ();
       maximum= EQ.getEqualizer().getBandLevelRange()[1];
       minimum= EQ.getEqualizer().getBandLevelRange()[0];
    }


public void onActivityCreated(Bundle savedInstanceState) {
                super.onActivityCreated(savedInstanceState);


                   lvforprest.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                            @Override
                                    public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
                                btnformenu.setText(gtuforpresets.get(position).gtumcaFirstName);
                                if(position!=0 && position <=10)
                                {
                                    try
                                    {
                                 EQ.getEqualizer().usePreset((short) (position-1));
                          EQ.getEqualizer().setBandLevel((short)0,  EQ.getEqualizer().getBandLevel((short) 0));
                          EQ.getEqualizer().setBandLevel((short)1,  EQ.getEqualizer().getBandLevel((short) 1));
                          EQ.getEqualizer().setBandLevel((short)2, EQ.getEqualizer().getBandLevel((short) 2));
                          EQ.getEqualizer().setBandLevel((short)3,  EQ.getEqualizer().getBandLevel((short) 3));
                          EQ.getEqualizer().setBandLevel((short)4,  EQ.getEqualizer().getBandLevel((short) 4)); …
Run Code Online (Sandbox Code Playgroud)

java audio android equalizer android-layout

7
推荐指数
1
解决办法
4056
查看次数

如何在Android中以编程方式打开内置均衡器?

我见过很多应用程序在内置均衡器(谷歌播放音乐,Spotify,三星股票音乐播放器)中打开系统.直接,无需从头开始编写自己的.这些应用程序如何做到这一点?我找不到解决方案.

} else if (id == R.id.action_fx) {
        Intent intent = new Intent();
        intent.setAction("android.media.action.DISPLAY_AUDIO_EFFECT_CONTROL_PANEL");
        if ((intent.resolveActivity(getPackageManager()) != null)) {
            startActivity(intent);
        } else {
            Intent intent11 = new Intent(MainActivity.this, Help.class);
            intent11.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            startActivity(intent11);
            // No equalizer found :(
        }
        return true;
Run Code Online (Sandbox Code Playgroud)

android equalizer

7
推荐指数
1
解决办法
3696
查看次数

UnsupportedOperationException AudioEffect:参数操作无效

我在这行代码上的均衡器上遇到UnsupportedOperationException错误.bassBoost.setStrength((short) bassBoostPos);

这是代码

equalizer = new Equalizer(0, 0);
if (equalizer != null) {
equalizer.setEnabled (isEqualizer);
numBands = equalizer.getNumberOfBands();
short r[] = equalizer.getBandLevelRange();
minLevel = r[0];
maxLevel = r[1];
bassBoost = new BassBoost (0, 0);

if(bassBoost != null) {
    bassBoost.setEnabled(bassBoostPos > 0 ? true : false);
    bassBoost.setStrength((short) bassBoostPos); 
}
Run Code Online (Sandbox Code Playgroud)

这是例外

java.lang.UnsupportedOperationException: AudioEffect: invalid parameter    
operation
at android.media.audiofx.AudioEffect.checkStatus(AudioEffect.java:1271)
at android.media.audiofx.BassBoost.setStrength(BassBoost.java:127)
Run Code Online (Sandbox Code Playgroud)

如何解决此问题,以便应用程序不会崩溃.我的意思是我如何检查设备是否支持此操作,如果它不支持,我会跳过这一行.谢谢.

java android equalizer android-fragments audioeffect

7
推荐指数
1
解决办法
850
查看次数