最近在PC上安装了MATLAB,对MATLAB对音频的处理,如滤波又如对音频数据进行频谱分析等功能,在android上有没有实现的可能? 我查了一下网上关于android对音频支持的那些组件,由于信息量过于庞大,而本人android才入门,所以在筛选信息上就无从下手,最主要的是android对音频的支持有几方面,做音频分析在理论上是否可行?对于在android上实现这样一个类似的软件需要掌握哪一些知识?  希望各位大大不吝赐教。 小弟恭候各位的佳音。

解决方案 »

  1.   

    1.音量的调节功能必不可少,而且我们要尽量考虑到刚开始音量的大小情况。2.对于当前播放的音频和将要转换的音频的考虑。其中包括永久的转换盒临时的转换,可以在其中加入duck特性。永久获得焦点的代码:AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE);
    ...// Request audio focus for playback
    int result = am.requestAudioFocus(afChangeListener,
                                     // Use the music stream.
                                     AudioManager.STREAM_MUSIC,
                                     // Request permanent focus.
                                     AudioManager.AUDIOFOCUS_GAIN);
       
    if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
        am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);
        // Start playback.
    }临时获得并带有duck的代码:// Request audio focus for playback
    int result = am.requestAudioFocus(afChangeListener,
                                 // Use the music stream.
                                 AudioManager.STREAM_MUSIC,
                                 // Request permanent focus.
                                 AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
       
    if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
        // Start playback.
    }3.不同的输出设备对音频播放的影响。包括耳机,蓝牙等输出设备。下面是检测硬件的代码:if (isBluetoothA2dpOn()) {
        // Adjust output for Bluetooth.
    } else if (isSpeakerphoneOn()) {
        // Adjust output for Speakerphone.
    } else if (isWiredHeadsetOn()) {
        // Adjust output for headsets
    } else { 
        // If audio plays and noone can hear it, is it still playing?
    }