Finch 사운드 엔진을 사용하여 AVAudioPlayer에서 OpenAL로 전환하는 중입니다. 미터링을해야합니다. 즉 평균 최고 레벨을 얻습니다. 핀치 사운드 엔진은 이것을 제공하지 않으며 OpenAL에 완전히 익숙하지 않습니다. 어떻게해야합니까? 모든 예제는 정말 감사하겠습니다.OpenAL에서 미터링/평균 피크 전력 레벨을 수행하려면 어떻게해야합니까?
1
A
답변
2
AVAudioPlayer의 peakPowerForChannel:
메소드의 드롭 인 대체를 찾고 있다고 가정합니다. 불행히도, 아무도 없습니다. 당신은 자신의 롤백해야합니다.
OpenAL "소리"는 "버퍼"(샘플 데이터, 메모리에로드 됨)와 샘플 데이터에 적용 할 속성과 같은 것을 나타내는 "원본"의 조합입니다.
OpenAL 재생에 대한 쉬운 접근 방식은 전체 파일을 메모리에로드하고 모든 호출을 하나의 호출로 재생하는 것입니다. 그러나 NSInputStream을 사용하여 파일에서 OpenAL 버퍼로 PCM 샘플 데이터 청크를 읽고 alBufferData()를 사용하여 자신의 함수를 사용하여 피크 전력을 계산하고 소스를 사용하여 청크를 재생 한 다음 EOF까지 반복합니다 .
Finch를 사용하려는 의도가 있음을 알고 있지만 AudioQueues에 실제 닫기 검색 기능을 제공해야합니다 (미터링이 중요한 기능인 경우). 이 응용 프로그램 유형에 대해 훨씬 더 잘 설계되었습니다. 특히, kAudioQueueProperty_CurrentLevelMeterDB 속성은 최대 RMS (mPeakPower) 또는 평균 RMS 수준 (mAveragePower)을 제공하며 원하는만큼 자주 읽을 수 있습니다.
행운과 행복 코딩! 도움이 될 수
일부 자원 :
- http://kcat.strangesoft.net/openal-tutorial.html
- http://connect.creativelabs.com/openal/Documentation/OpenAL_Programmers_Guide.pdf
- http://www.hydrogenaudio.org/forums/index.php?showtopic=78578
- http://developer.apple.com/mac/library/documentation/MusicAudio/Reference/AudioQueueReference/Reference/reference.html
관련 문제
- 1. AVAudioRecorder : 피크 및 평균 전력
- 2. 문서 루트에서 레벨을 높이려면 어떻게해야합니까?
- 3. UIWebView에서 페이징을 수행하려면 어떻게해야합니까?
- 4. JQuery에서 루프를 수행하려면 어떻게해야합니까?
- 5. OpenAL에서 최대 이득 찾기
- 6. Clojure에서 유형 변환을 수행하려면 어떻게해야합니까?
- 7. 하나의보기에서 멀티 태스킹을 수행하려면 어떻게해야합니까?
- 8. 오라클에서 근접 검색을 수행하려면 어떻게해야합니까?
- 9. XSLT에서 문자열 연산을 수행하려면 어떻게해야합니까?
- 10. SqlDataSource FilterExpression에서 캐스트를 수행하려면 어떻게해야합니까?
- 11. 페이지로드에서 jax 탐색을 수행하려면 어떻게해야합니까?
- 12. 잠시 후 작업을 수행하려면 어떻게해야합니까?
- 13. HttpModule에서 XSLT 변환을 수행하려면 어떻게해야합니까?
- 14. WPF에서 3D 변환을 수행하려면 어떻게해야합니까?
- 15. 특정 날짜에 작업을 수행하려면 어떻게해야합니까?
- 16. PostgreSQL을 사용하여 진공을 수행하려면 어떻게해야합니까?
- 17. 루비에서 nokogiri 검색을 수행하려면 어떻게해야합니까?
- 18. 텍스처에서 HSL 변환을 수행하려면 어떻게해야합니까?
- 19. listview에서 onclick 액션을 수행하려면 어떻게해야합니까?
- 20. Selenium으로 데이터베이스 테스트를 수행하려면 어떻게해야합니까?
- 21. Entity Framework에서이 작업을 수행하려면 어떻게해야합니까?
- 22. Java2D에서 이중 버퍼링을 수행하려면 어떻게해야합니까?
- 23. UISplitView로 애니메이션 전환을 수행하려면 어떻게해야합니까?
- 24. 코코아의 오디오 입력 레벨 피크 읽기
- 25. 트리 뷰에서 노드 레벨을 얻으려면 어떻게해야합니까?
- 26. UIScrollView에서 현재 줌 레벨을 얻으려면 어떻게해야합니까?
- 27. SHOUTcast 볼륨 피크 테스트
- 28. 능동태 코드의 피크 감지
- 29. 자바 피크 피팅 라이브러리
- 30. OpenAL에서 여러 장치로 출력 (Linux)
윽, 내가 AudioQueues을 피하기 위해 기대했다. 절대로 이해할 수 없습니다. 그러나 답장을 보내 주셔서 감사합니다. 찾을 수있는 정보가 거의 없습니다! – Thaurin