2014-07-09 3 views
1

저는 사용자가 수행 한 작업에 따라 다른 비디오를 재생하는 C++ 응용 프로그램에서 작업 해 왔습니다. 지금까지는 비디오를 약간만 변경해야하기 때문에 OpenCV와 함께 비디오 만 재생했습니다. OpenCV는 사운드를 재생하지 않기 때문에 사운드를 독립적으로 재생하려면 다른 라이브러리를 사용해야합니다. 지금까지 FFmpeg를 시도했지만 C++ (적어도 외부 라이브러리가있는 컴퓨터에서는 일반적으로 마이크로 컨트롤러에서 실행)에서 작업 한 경험이 없으므로 작동하지 않습니다.C++ 콘솔 응용 프로그램에서 비디오 오디오 재생

사운드는 비디오와 동기화 할 필요가 없으며 Windows에서만 실행해야합니다. 최선의 선택은 무엇입니까?

감사합니다.

+0

opencv의 주요 기능은 I/O가 아닌 프레임을 처리하는 것입니다. Qt + phonon을 사용합니다. http://qt-project.org/doc/qt-5/multimedia-examples.html – baci

+0

실시간으로 비디오를 처리해야하므로 OpenCV를 사용하여 프레임을 처리했습니다. 그러나 OpenCV는 오디오를 처리하지 않으며, 비디오에서와 정확히 어떻게 연주해야합니까? –

+0

opencv는 이미지 데이터로 I/O 비디오를 만들 수 있습니다. 실제로는 하위 레이어에서 ffmpeg를 사용하지만, 주 기능은이를 처리하는 것입니다. 오디오의 경우 기능이 없습니다. – baci

답변

0

Windows에서만 작동해야하는 경우 WINAPI function PlaySound이 요구 사항을 충족해야합니다.

#include "windows.h" 
#include "mmsystem.h" 

void play() 
{ 
    PlaySound(TEXT("sound.wav"), NULL, SND_FILENAME); // plays sound.wav once 
} 

이 작업을 수행하려면 winmm.lib과 연결해야합니다.

파일 이름이 ASCII가 아니면 PlaySoundA (ANSI) 또는 PlaySoundW (유니 코드)을 사용해야합니다.

See also this question 소리가 제대로 재생되지 않으면.

+0

나는 당신이 말한대로했지만 어떤 이유 때문에 윈도우의 "잘못된"소리를 재생합니다 (나는 틀린 것을 만들었 음에 틀림 없습니다). 여기에 코드가 있습니다 : PlaySound (TEXT ("C :/Users/Ricardo/Documents/Visual Studio 2013/Projects/SomEVideo/SomEVideo/KinectAudio-02-23-32.wav"), NULL, SND_FILENAME); // 한 번 sound.wav를 재생합니다. –

+0

"윈도우의 잘못된 사운드"가 재생되는 것을 이해하지 못하기 때문에 나는 정말로 당신을 도울 수 없습니다. 아마도 새로운 질문을해야 할 것입니다. – Theolodis

+0

정확히 내가 한 일은 다음과 같습니다. stdafx.h에 헤더를 먼저 포함시킨 다음,이 코드 줄을 테스트를 위해 PlaySound (TEXT ("C :/Users/Ricardo/Documents/Visual Studio 2013/Projects/SomEVideo/SomEVideo/KinectAudio-02-23-32.wav "), NULL, SND_FILENAME); 이 후에 프로젝트 속성에서 winmm.lib를 연결했습니다. 내가 프로그램을 실행했을 때 wav 사운드를 재생하는 대신 wav 사운드를 재생하고 싶었습니다. https://dl.dropboxusercontent.com/u/45453297/Windows%20Background.wav –

관련 문제