>

프로그래밍에있어 초보자이며, C ++로 개인 프로젝트를 수행하여 기술을 개발하고 싶었습니다. 내가 생각한 프로젝트는 랩톱에서 오디오를 재생하고 (Windows 10을 실행), 분석하고, 재생중인 오디오와 동기화하여 LED 조명의 색상과 밝기를 변경하는 arduino로 데이터를 보내는 것입니다. 예를 들어 Spotify에서 노래를 재생하거나 Youtube 등에서 뮤직 비디오를 재생하면 프로그램이 해당 오디오 스트림에서 데이터를 입력으로 가져옵니다. 다른 곳에서는 프로그램이 녹음 된 WAV 파일의 오디오 또는 마이크의 스트림을 입력으로 사용하지만 내가 생각한 것은 아닙니다. 이 프로그램을 파티에 사용하고 싶으므로 해결 방법으로 마이크를 사용하는 것이 이상적이지 않습니다.

이것도 가능합니까? 그렇다면 어떻게이 문제에 접근해야합니까? 살펴 봐야 할 특정 API가 있습니까? 프로그램이 오디오를 입력으로 받으면 블루투스 스피커와 같은 음악을 계속 재생할 수 있습니까? 아니면 한 번에 한 곳에만 데이터를 보낼 수 있습니까?

나보다 프로그래밍에 능숙한 룸메이트는 Swift를 사용하여 Mac에서이 작업을 수행했으며 Mac이없는 경우 Linux를 사용하면이 작업이 더 쉬워 집니까?


  • 답변 # 1

    현대 창에는 "Stereo Mix"녹음 장치가 있습니다. 활성화 방법은 다음과 같습니다. https://technicalustad.com/enable-stereo-mix-in-windows-10/

    설정 후 C ++ 프로그램에서 원하는 녹음 API를 사용하십시오.

    다음은 요청한 작업을 수행하고, 녹음 장치를 열고, 녹음을 시작하고, 인수로 제공된 클래스에 오디오 샘플을 보내는 샘플입니다. https://docs.microsoft.com/en-us/windows/win32/coreaudio/capturing-a-stream 아마도 응용 프로그램의 대기 시간으로 CPU 시간을 교환하려고합니다. , hnsActualDuration/REFTIMES_PER_MILLISEC/2 로 변경  또는 Sleep( 0 )

    Sleep( 1 )

관련 자료

  • 이전 bash - 서브 프로세스 (OS X)에서 실행될 때 컬러 그렙이 문제를 일으킴
  • 다음 compilation - VB6 컴파일 된 실행 파일의 크기를 줄이는 방법은 무엇입니까?