2017-02-18 1 views
1

ASIO 장치로 직접 오디오를 재생하는 동안 일부 ASIO 장치에서 발생하는 것으로 보이는 버그에 대한 지원을 찾고있었습니다. 마지막에 도달하기 전에 WAV 오디오가 중단되지 않으면 응용 프로그램이 멈추고 마지막 오디오의 급속 블립이 지속적으로 재생됩니다 (더듬 소리처럼 들립니다). 이 시점에서 UI 스레드가 중단되고 응용 프로그램을 강제 종료해야합니다.NAudio ASIO 일부 장치에서 재생이 중단된다

이 문제는 NAudio의 github 사이트에서 제공되는 "ASIO Direct Demo"를 사용하여 재현 할 수 있습니다. 내가하는 모든 일은 데모에서 WAV 파일을 열고 클릭 재생합니다. 오디오가 끝나면 응용 프로그램이 중지됩니다.

이 문제를 테스트 한 결과 M-Audio M-Track MKII가 아니라 Behringer X-Air x18에서 발생하는 것으로 나타났습니다. 누군가이 버그를 코드하는 방법을 찾았는지 궁금합니다. 고맙습니다.

PS - NAudio는 놀라운 프레임 워크이며 Mark Heath (저자)는 구독료에 전적으로 가치가있는 복수 채널 튜토리얼을 제공합니다.

+0

사이드로 현재 현재 해결 방법은 현재 위치가 총 위치에 가까워지면 오디오를 멈추는 감시자 스레드를 스핀하는 것입니다. 그러나보다 우아한 방법이 있기를 바라고 있습니다. –

답변

0

일부 사람들은 ASIO에서 자동 멈춤 문제 (입력이 끝나고 ASIO 콜백 내에서 재생을 중지하려고 시도하는 문제)를보고했습니다. 한 가지 간단한 해결 방법은 끊이지 않는 스트림을 AsioOut에 전달하고 오디오가 끝났을 때를 감지 한 다음 외부에서 재생을 중지하는 것입니다.

+0

안녕하세요, 빠른 응답과 위대한 프레임 워크에 감사드립니다. 다른 게시물에서 비슷한 응답을 보았지만 끊이지 않는 스트림의 구현을 찾을 수 없었습니다. 어떻게 할 수 있는지 설명하는 블로그 게시물이나 답변이 있습니까? 스트림을 생성하여 기존 출력 채널의 multiplexingaudioprovider에 전달할 수 있기를 바랍니다. –

+0

NAudio의 여러 스트림이 절대로 끝나지 않습니다. WaveChannel32는 그런 식으로 구성 할 수 있으며, 대부분의 믹싱 스트림도 생각합니다. 자신의 IWaveProvider를 작성하는 것은 정말 쉽습니다. Read 메서드는 소스에서 읽은 다음 소스가 끝난 후 무음을 반환합니다. –

관련 문제