2
我使用WebRTC進行攝像頭播放(它用於在視頻通話前測試我的應用程序中的攝像頭)。我做這些未來的一些功能的WebRTC:WebRTC使用Qt播放攝像頭
////////////////////////
//initialization
{
webrtc::VoiceEngine* voe = VoiceEngine::Create();
webrtc::VoEBase* voeBase = VoEBase::GetInterface(voe);
voeBase->Init();
webrtc::VideoEngine* vie = VideoEngine::Create();
webrtc::ViEBase* vieBase = ViEBase::GetInterface(vie);
vieBase->Init();
webrtc::ViECapture* vieCapture = ViECapture::GetInterface(vie);
}
////////////////////////
// start webcam playing
void MainWindow::StartWebcamTest()
{
// creating window for playing webcam video
videoWidget = new Phonon::VideoWidget();
videoWidget->setFixedSize(640, 480);
videoWidget->setWindowTitle("Test Webcam");
char captDevName[1024], captGuidName[1024];
VoEEngineSingleton::Instance()->GetViECapture()->GetCaptureDevice(0, captDevName, 1024, captGuidName, 1024);
VoEEngineSingleton::Instance()->GetViECapture()->AllocateCaptureDevice(captGuidName, 1024, captureID);
testVideoChannel = VoEEngineSingleton::Instance()->GetViEBase()->CreateChannel(testVideoChannel);
if(testVideoChannel == -1)
LOGERR << "Creating video channel error: " << VoEEngineSingleton::Instance()->GetViEBase()->LastError() << endl;
else LOGDEBUG << "Video channel created, ID = " << testVideoChannel << endl;
testAudioChannel = VoEEngineSingleton::Instance()->GetVoEBase()->CreateChannel();
if(testAudioChannel == -1)
LOGERR << "Creating audio channel error: " << VoEEngineSingleton::Instance()->GetVoEBase()->LastError() << endl;
else LOGDEBUG << "Audio channel created, ID = " << testAudioChannel << endl;
if(VoEEngineSingleton::Instance()->GetViEBase()->ConnectAudioChannel(testVideoChannel, testAudioChannel) != 0)
LOGERR << "ConnectAudioChannel() error: " << VoEEngineSingleton::Instance()->GetViEBase()->LastError() << endl;
else LOGINFO << "Audio channel connected successful " << endl;
if(VoEEngineSingleton::Instance()->GetViECapture()->ConnectCaptureDevice(captureID, testVideoChannel) != 0)
LOGERR << "ConnectCaptureDevice() error: " << VoEEngineSingleton::Instance()->GetViEBase()->LastError() << endl;
else LOGINFO << "Capture device connected successful " << endl;
if(VoEEngineSingleton::Instance()->GetViERender()->StartRender(testVideoChannel) != 0)
LOGERR << "StartRender() error: " << VoEEngineSingleton::Instance()->GetViEBase()->LastError() << endl;
else LOGINFO "StartRender() successed " << endl;
if(VoEEngineSingleton::Instance()->GetViECapture()->StartCapture(captureID) != 0)
LOGERR << "StartCapture() error: " << VoEEngineSingleton::Instance()->GetViEBase()->LastError() << endl;
else LOGINFO << "StartCapture() successed " << endl;
videoWidget->show();
}
當我點擊按鈕,用於播放視頻 - 網絡攝像頭開始播放,但videoWidget
窗口是黑空。
我在做什麼不是真的?也許我必須使用其他Qt小部件?