홈>
프로그래밍에있어 초보자이며, C ++로 개인 프로젝트를 수행하여 기술을 개발하고 싶었습니다. 내가 생각한 프로젝트는 랩톱에서 오디오를 재생하고 (Windows 10을 실행), 분석하고, 재생중인 오디오와 동기화하여 LED 조명의 색상과 밝기를 변경하는 arduino로 데이터를 보내는 것입니다. 예를 들어 Spotify에서 노래를 재생하거나 Youtube 등에서 뮤직 비디오를 재생하면 프로그램이 해당 오디오 스트림에서 데이터를 입력으로 가져옵니다. 다른 곳에서는 프로그램이 녹음 된 WAV 파일의 오디오 또는 마이크의 스트림을 입력으로 사용하지만 내가 생각한 것은 아닙니다. 이 프로그램을 파티에 사용하고 싶으므로 해결 방법으로 마이크를 사용하는 것이 이상적이지 않습니다.
이것도 가능합니까? 그렇다면 어떻게이 문제에 접근해야합니까? 살펴 봐야 할 특정 API가 있습니까? 프로그램이 오디오를 입력으로 받으면 블루투스 스피커와 같은 음악을 계속 재생할 수 있습니까? 아니면 한 번에 한 곳에만 데이터를 보낼 수 있습니까?
나보다 프로그래밍에 능숙한 룸메이트는 Swift를 사용하여 Mac에서이 작업을 수행했으며 Mac이없는 경우 Linux를 사용하면이 작업이 더 쉬워 집니까?
-
답변 # 1
관련 자료
- javascript - 다중 오디오 html - 현재 재생 중 기타 자동 중지
- javascript - css 또는 js로 오디오 파일을 재생할 때 표시 할 파형을 만드는 방법
- c++ - 프로그램은 정보를 입력 할 수있는 부분에 도달하지 않습니다
- python - 사용자가 입력을 계속 할 때까지 프로그램을 실행하는 방법은 무엇입니까?
- 사용자의 잘못된 입력으로 인해 파이썬 프로그램을 다시 시작하는 방법
- c - 입력 한 후 프로그램이 작동하지 않는 이유는 무엇입니까?
- Java 프로그램에서 사용자 입력을 기반으로 루프를 계속하는 방법
- python - 내 프로그램이 실행될 때 입력 후 출력이 중지되는 이유, 즉 내 코드가 완전히 실행되지 않는 이유
- reactjs - 여러 아약스 요청에서 오디오가 겹치는 재생
- java - 프로그램이 실행되지만 두 번째 루프는 입력에 관계없이 종료됩니다
- 오디오가 현재 Android 폰 스피커에서 재생되고 있는지 감지하는 방법은 무엇입니까?
- python - 사용자 입력이 $XXXX 형식인지 확인하는 방법은 무엇입니까? $XX 형식 일 수도 있지만 프로그램은이를 소수점 이하 2 자리 부동으로 변환합니다
- c# - 데이터베이스없이 프로그램에서 입력 데이터 저장
- unity3d - 유니티 56 - audioplayer 오디오를 재생하지 않는 videoplayer
- python - 사용자 입력에 따라 프로그램을 다시 시작하려면 어떻게합니까?
- unix - C의 신호를 사용하여 입력이 -1 인 경우 B 프로그램 프로세스에서 프로세스를 종료하는 방법
- python - 전체 프로그램을 다시 시작하는 대신 하나의 입력을 어떻게 반복합니까?
- chatbot - 사용자 입력 톤을 감지하는 Python 프로그램
- python - 사용자에게 삼각형의 높이를 묻는 프로그램을 만들어야합니다
- Java 계산기 프로그램에 사용자 입력 유효성 검사를 받으려면 어떻게해야합니까?
관련 질문
- c++ - 바이너리에서 내 보낸 이름을 난독 화하거나 삭제하는 방법
- c++ - LeetCode Online Judge에서 "Heap use after free"오류가 발생하지만 Visual Studio가 아님
- c++ - 링커가 올바른 라이브러리를 찾는 방법은 무엇입니까?
- c++11 - C ++에서 예기치 않은 루프를 수정하는 방법
- c++ - GCC와 MSVC에서 다른 consteval 동작
- short는 Visual C ++ 2017을 오버플로하지 않습니다
- c++ - 산술 계산 이상
- c++ - 템플릿 생성자의 기본값으로 템플릿 의존 값에 의존하는 Lamba는 MSVC에서 실패합니다
- c++ - Visual Studio 2019에서 BOOL 매개 변수가 필요한 함수에 bool 변수를 매개 변수로 전달
- c++ - LoadCursor 대신 LoadImage ()를 사용하여 기본 커서로 창을 등록하는 방법은 무엇입니까?
현대 창에는 "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 )