2015-03-31 19 views
0

我在Android上使用libpd(純數據)來製作可用作低預算助聽器的應用程序。我原創的「音頻引擎」設計有7個濾鏡,兩個耳機的音量都相同。我改變了設計有14個過濾器,現在右耳機的音量很低。Android - 手機資源使用率過高導致耳機音量不足?

在我的筆記本電腦上運行引擎在雙耳上產生相同的音量。我嘗試在它自己的線程上運行所有音頻處理,但我不確定是否正確執行了此操作。

所以要解決這個問題。

  1. 一隻耳朵體積不足,使用過多的資源可能產生副作用?
  2. 我的創建新線程的實現是否正確?

    public class CircleOfFifths extends Activity { 
    
    private static final String TAG = "GuitarTuner"; 
    private PdUiDispatcher dispatcher; 
    
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        initGui(); 
    
        new Thread(new Runnable() { 
         public void run(){   
          try { 
           initPd(); 
           loadPatch(); 
          } catch (IOException e) { 
           Log.e(TAG, e.toString()); 
           finish(); 
          }   } 
        }).start(); 
    
    
    
    } 
    
    private void initGui() { 
        setContentView(R.layout.main); 
    } 
    
    private void initPd() throws IOException { 
        // Configure the audio glue 
        // int sampleRate = AudioParameters.suggestSampleRate(); 
    
        int sampleRate = AudioParameters.suggestSampleRate(); 
        int inpch = AudioParameters.suggestInputChannels(); 
        int outch = AudioParameters.suggestOutputChannels(); 
        PdAudio.initAudio(sampleRate, inpch, outch, 4, true); 
    
        // Create and install the dispatcher dispatcher = new PdUiDispatcher(); 
        // PdBase.setReceiver(dispatcher); 
    } 
    
    private void loadPatch() throws IOException { 
        File dir = getFilesDir(); 
        IoUtils.extractZipResource(getResources().openRawResource(R.raw.patch), 
          dir, true); 
        File patchFile = new File(dir, "microphone.pd"); 
        PdBase.openPatch(patchFile.getAbsolutePath()); 
        PdAudio.startAudio(this); 
    } 
    
    @Override 
    protected void onResume() { 
        super.onResume(); 
        PdAudio.startAudio(this); 
    } 
    
    @Override 
    protected void onPause() { 
        super.onPause(); 
        PdAudio.stopAudio(); 
    } 
    } 
    

回答

1

使用過多的CPU應該不會影響音量的。看起來你的某個過濾器在該頻道上的增益可能小於1。

你的帖子對我來說很不錯。我不是100%確定在非UI線程上調用完成是合法的,但如果不是,您可以添加runOnUiThread那裏

相關問題