Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-均衡器使用预设不工作(音效无变化)_Android_Android Mediaplayer_Equalizer - Fatal编程技术网

Android-均衡器使用预设不工作(音效无变化)

Android-均衡器使用预设不工作(音效无变化),android,android-mediaplayer,equalizer,Android,Android Mediaplayer,Equalizer,我正在研究流媒体广播应用程序。除了改变均衡器效果不影响声音外,一切正常 通过调用usePreset(预设)更改均衡器效果不会对音效进行任何更改 即使没有错误,为什么usePreset不会更改音效 我已经在三星galaxy sII 4.0.3上进行了测试 public void startPlayer() { // // Check whether we can acquire the audio focus // to start the player //

我正在研究流媒体广播应用程序。除了改变均衡器效果不影响声音外,一切正常

通过调用usePreset(预设)更改均衡器效果不会对音效进行任何更改

即使没有错误,为什么usePreset不会更改音效

我已经在三星galaxy sII 4.0.3上进行了测试

public void startPlayer() {
    //
    // Check whether we can acquire the audio focus
    // to start the player
    //
    if (!requestAudioFocus()) {
        return;
    }

    if (null != mAudioPlayer) {
        if (mAudioPlayer.isPlaying()) {
            mAudioPlayer.stop();
        }
        mAudioPlayer.reset();
    } else {
        mAudioPlayer = new MediaPlayer();
        mAudioPlayer.reset();
    }
    try {
        notifyProgressUpdate(PLAYER_INITIALIZING);
        try {
            mEqualizer = new Equalizer(0, mAudioPlayer.getAudioSessionId());
            mEqualizer.setEnabled(true);
            Log.d(TAG,
                    "Audio Session ID " + mAudioPlayer.getAudioSessionId()
                            + "Equalizer " + mEqualizer + " Preset "
                            + mEqualizer.getCurrentPreset());
        } catch (Exception ex) {
            mEqualizer = null;
        }
        mAudioPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mAudioPlayer.setDataSource(mCurrentTrack.getStreamURL());

        //
        // Add the Listener to track the player status
        //
        mAudioPlayer.setOnCompletionListener(this);
        mAudioPlayer.setOnBufferingUpdateListener(this);
        mAudioPlayer.setOnPreparedListener(this);
        mAudioPlayer.setOnInfoListener(this);
        mAudioPlayer.setOnErrorListener(this);
        notifyProgressUpdate(PLAYER_BUFFERING);
        mAudioPlayer.prepareAsync();

    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (SecurityException e) {
        e.printStackTrace();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

            //Get the available presets from the equalizer
    public String[] getEqualizerPresets() {
        String[] presets = null;
        short noOfPresets = -1;
        if (null != mEqualizer) {
            noOfPresets = mEqualizer.getNumberOfPresets();
            presets = new String[noOfPresets];
            for (short index = 0; index < noOfPresets; index++) {
                presets[index] = mEqualizer.getPresetName(index);
            }
        }
        return presets;
    }

            //Set the user preferred presets
    public void setEqualizerPreset(int position) {
        if (null != mEqualizer) {
            Log.d(TAG, "setting equlizer effects " + position);
            Log.d(TAG, "Equalizer " + mEqualizer + " set Preset " + position);
            mEqualizer.usePreset((short)position);
            Log.d(TAG, "Equalizer " + mEqualizer + " current Preset "
                    + mEqualizer.getCurrentPreset());
        }
    }
public void startPlayer(){
//
//检查我们是否可以获得音频焦点
//开局
//
如果(!requestAudioFocus()){
返回;
}
if(null!=mAudioPlayer){
if(mAudioPlayer.isPlaying()){
mAudioPlayer.stop();
}
mAudioPlayer.reset();
}否则{
mAudioPlayer=新媒体播放器();
mAudioPlayer.reset();
}
试一试{
notifyProgressUpdate(正在初始化播放器);
试一试{
mEqualizer=新均衡器(0,mAudioPlayer.getAudioSessionId());
mEqualizer.setEnabled(true);
Log.d(标签,
“音频会话ID”+mAudioPlayer.getAudioSessionId()
+“均衡器”+mEqualizer+“预设”
+mEqualizer.getCurrentPreset());
}捕获(例外情况除外){
mEqualizer=null;
}
mAudioPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
setDataSource(mcurrentrack.getStreamURL());
//
//添加侦听器以跟踪播放器状态
//
mAudioPlayer.setOnCompletionListener(这个);
mAudioPlayer.setOnBufferingUpdateListener(this);
mAudioPlayer.setOnPreparedListener(这个);
mAudioPlayer.setOnInfo侦听器(此);
mAudioPlayer.SetOneRorListener(此);
notifyProgressUpdate(播放器缓冲);
mAudioPlayer.prepareAsync();
}捕获(IllegalArgumentException e){
e、 printStackTrace();
}捕获(安全异常e){
e、 printStackTrace();
}捕获(非法状态){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}
//从均衡器获取可用的预设值
公共字符串[]getEqualizerPresets(){
字符串[]预设值=空;
短noOfPresets=-1;
if(null!=mEqualizer){
noOfPresets=mEqualizer.getNumberOfPresets();
预设=新字符串[noOfPresets];
对于(短索引=0;索引
感谢您帮助确定问题

编辑 这个问题还没有解决。我没有找到任何解释均衡器预设用法的示例代码


对使用预设欢迎的代码示例的任何引用。

我也有同样的问题。当我在emulator上加载它时,它会产生一个错误,我真的不知道为什么,它总是说…audiofx.Equalizer。和audiofx.AudioEffect。或者类似的东西。但我发现,在我的情况下,如果您有其他媒体播放器,如n7player,请尝试关闭它,然后重试您的媒体播放器。在我的例子中,它是有效的,但我认为它必须是一种方法来获得一些激活的均衡器。

希望这将对您有所帮助

在模拟器和设备中测试均衡器效果时,我没有运行任何其他音频应用程序。让我再检查一遍。你解决了这个问题吗?你能为我提供一些关于这个的教程吗?谢谢你的源代码。如果能解决我的问题,我会查看源代码并进行更新。我不认为参考源代码(即使最终有用)是一个答案