2016-07-14 7 views
0

У меня есть простой проект libPd. Теперь я загрузил WAV-файл, и я хочу воспроизвести его вместо файла чистых данных, который у меня есть. это можно сделать? Если это так, как я могу это сделать?Как играть в wav-файл в libPd

Это мой проект:

public class MainActivity extends AppCompatActivity { 

private Button kickButton, bassButton; 
private PdUiDispatcher dispatcher; 
private boolean isClicked; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 



    kickButton = (Button) findViewById(R.id.kickButton); 
    bassButton = (Button) findViewById(R.id.bassButton); 

    int sampleRat = AudioParameters.suggestSampleRate(); 
    try { 
     PdAudio.initAudio(sampleRat,0,2,8,true); 
     dispatcher = new PdUiDispatcher(); 
     PdBase.setReceiver(dispatcher); 

     File dir = getFilesDir(); 
     IoUtils.extractZipResource(getResources().openRawResource(R.raw.simplepatch),dir,true); 
     File pdPatch = new File(dir, "simplepatch.pd"); 
     PdBase.openPatch(pdPatch.getAbsolutePath()); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 



    kickButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      isClicked = !isClicked; 

      float val = (isClicked) ? 1.0f : 0.0f; 
      PdBase.sendFloat("onOff", val); 
     } 
    }); 

} 

@Override 
protected void onResume() { 
    super.onResume(); 
    PdAudio.startAudio(this); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    PdAudio.stopAudio(); 
} 
} 

Thaks !!

ответ

1

Чтобы загрузить и воспроизвести файл wav, вам необходимо закрепить свой патч pd и wav-файл в один ZIP-файл. В вашем java-коде ваш zip-файл называется simplepatch.zip , а затем вы открываете патч simplepatch.pd из ZIP-файла.

File dir = getFilesDir(); 
IoUtils.extractZipResource(getResources().openRawResource(R.raw.simplepatch),dir,true); 
File pdPatch = new File(dir, "simplepatch.pd"); 
PdBase.openPatch(pdPatch.getAbsolutePath()); 

Все, что вам нужно сделать, это поместить файл WAV в файл simplepach.zip, а затем с помощью кнопки в вашем андроид приложение, играть в файл. Образец П.Д. патч для нее будет выглядеть следующим образом:

click to view image

+0

ммм ... Я не могу Opan файл, который не входит в ПФП патч? – Roish