BlackBerry 오디오 녹음 샘플 코드
-
06-09-2019 - |
문제
블랙 베리의 샘플 코드를 얻을 수있는 좋은 저장소를 아는 사람이 있습니까? 구체적으로, 오디오 녹음의 메커니즘을 배우는 데 도움이되는 샘플, 아마도 샘플링하고 플라이 신호 처리에서 일부를 수행 할 수도 있습니까?
들어오는 오디오, 필요한 경우 샘플별 샘플을 읽고, 원하는 결과를 얻기 위해 처리하고,이 경우에는 시각화를 작성하고 싶습니다.
해결책
림 API에 포함되어 있습니다 JSR 135 Java Mobile Media API 오디오 및 비디오 컨텐츠를 처리합니다.
BB 지식 기반의 혼란에 대해 정확합니다. 유일한 방법은 사이트 맵을 다시 변경하지 않기를 바라면서 찾아 보는 것입니다.
이것의 개발자-> 리소스->지식 기반->Java API 및 샘플->오디오 및 비디오
오디오 녹음
기본적으로 오디오를 녹음하는 것은 간단합니다.
- 올바른 오디오 인코딩으로 플레이어를 만듭니다
- RecordControl을 얻으십시오
- 녹음을 시작하십시오
- 녹음을 중지하십시오
연결:
RIM 4.6.0 API Ref : 패키지 javax.microedition.media
방법 - BlackBerry 스마트 폰에서 오디오를 녹음하십시오
방법 - 애플리케이션에서 오디오를 재생합니다
방법 - 미디어 애플리케이션 스트리밍 오디오 지원
방법 - 오디오 경로 라우팅을 지정합니다
방법 - 미디어 애플리케이션에서 미디어 재생 시간을 얻습니다.
지원되는 오디오 형식
무엇입니까 - 미디어 응용 프로그램 오류 코드
오디오 레코드 샘플
플레이어가있는 스레드, RecordControl 및 Resources가 선언됩니다.
final class VoiceNotesRecorderThread extends Thread{
private Player _player;
private RecordControl _rcontrol;
private ByteArrayOutputStream _output;
private byte _data[];
VoiceNotesRecorderThread() {}
private int getSize(){
return (_output != null ? _output.size() : 0);
}
private byte[] getVoiceNote(){
return _data;
}
}
ordle.run () 오디오 녹음이 시작되었습니다.
public void run() {
try {
// Create a Player that captures live audio.
_player = Manager.createPlayer("capture://audio");
_player.realize();
// Get the RecordControl, set the record stream,
_rcontrol = (RecordControl)_player.getControl("RecordControl");
//Create a ByteArrayOutputStream to capture the audio stream.
_output = new ByteArrayOutputStream();
_rcontrol.setRecordStream(_output);
_rcontrol.startRecord();
_player.start();
} catch (final Exception e) {
UiApplication.getUiApplication().invokeAndWait(new Runnable() {
public void run() {
Dialog.inform(e.toString());
}
});
}
}
그리고 thread.stop () 녹음이 중지됩니다.
public void stop() {
try {
//Stop recording, capture data from the OutputStream,
//close the OutputStream and player.
_rcontrol.commit();
_data = _output.toByteArray();
_output.close();
_player.close();
} catch (Exception e) {
synchronized (UiApplication.getEventLock()) {
Dialog.inform(e.toString());
}
}
}
오디오 스트림 처리 및 샘플링
녹음이 끝나면 특정 오디오 형식의 데이터로 채워진 출력 스트림이 있습니다. 따라서 처리하거나 샘플링하려면이 오디오 스트림을 디코딩해야합니다.
비행 처리에 대해 이야기하면 더 복잡 할 것입니다. 레코드를 기록하지 않고 기록하는 동안 출력 스트림을 읽어야합니다. 따라서 해결해야 할 몇 가지 문제가 있습니다.
- 레코더 및 샘플러 용 출력 스트림에 대한 액세스 동기화 - 스레딩 문제
- 올바른 양의 오디오 데이터 읽기 - 마크 업 규칙을 찾으려면 오디오 형식 디코딩으로 깊이 들어가십시오.
또한 유용 할 수 있습니다.
Java.net : Vikram Goyal의 Java Me의 스트리밍 컨텐츠 실험
다른 팁
오디오 구체적이지는 않지만이 질문에는 "시작"참조가 있습니다.
나는 이것을 알아 내려고 노력하는 나이를 보냈다. BlackBerry 구성 요소 팩을 설치 한 후에는 사용 가능합니다 그들의 웹 사이트에서), 구성 요소 팩 내에서 샘플 코드를 찾을 수 있습니다.
제 경우에는 구성 요소 팩을 Eclipse에 설치 한 후에는이 위치에서 추출 된 샘플 코드를 발견했습니다.
C : Program Files eclipse eclipse3.4 플러그인 net.rim.eide.componentpack4.5.5.5.16 구성 요소 샘플
불행히도 모든 샘플 코드를 가져 왔을 때 많은 컴파일 오류가있었습니다. 해결 방법으로 컴파일 오류로 패키지의 20%를 삭제했습니다.
다음 문제는 시뮬레이터를 시작하는 것이 항상 첫 번째 샘플 코드 패키지를 시작했다는 것이 었습니다 (내 경우 ActiveTextFieldsdemo)는 내가 관심있는 패키지 만 실행할 수 없었습니다. 내가 원했던 것.
다른 gotchas :
-Eclipse에서 프로젝트를 클릭하고 BlackBerry의 활성화를 선택하십시오.
-Choose BlackBerry-> 구성 구성 ...-> 편집 ... 그리고 새 프로젝트를 선택하여 구축하십시오.
-Eclipse 프로젝트에서 BlackBerry 소스 코드를 "SRC"폴더 아래에 배치하십시오. 그렇지 않으면 빌드 문제에 도달 할 수 있습니다.