| 201 | } |
| 202 | |
| 203 | void CBackendPlayer::slotStart() |
| 204 | { |
| 205 | qDebug(log) << Q_FUNC_INFO; |
| 206 | slotEnableAudioInput(m_pParameters->GetEnableAudioInput()); |
| 207 | slotEnableAudioOutput(m_pParameters->GetEnableAudioOutput()); |
| 208 | |
| 209 | switch (m_pParameters->GetType()) { |
| 210 | case CParameterPlayer::TYPE::Camera: { |
| 211 | if(!m_pCamera) { |
| 212 | const QList<QCameraDevice> cameras = QMediaDevices::videoInputs(); |
| 213 | if(cameras.isEmpty() |
| 214 | || -1 > m_pParameters->GetCamera() |
| 215 | || m_pParameters->GetCamera() > QMediaDevices::videoInputs().size()) |
| 216 | break; |
| 217 | m_pCamera = new QCamera(cameras.at(m_pParameters->GetCamera())); |
| 218 | emit sigServerName(cameras.at(m_pParameters->GetCamera()).description()); |
| 219 | } |
| 220 | if(m_pCamera) { |
| 221 | m_CaptureSession.setVideoSink(&m_VideoSink); |
| 222 | m_CaptureSession.setCamera(m_pCamera); |
| 223 | m_pCamera->start(); |
| 224 | } |
| 225 | break; |
| 226 | } |
| 227 | case CParameterPlayer::TYPE::Url: { |
| 228 | QString szFile = m_pParameters->GetUrl(); |
| 229 | QFileInfo fi(szFile); |
| 230 | emit sigServerName(fi.fileName()); |
| 231 | QUrl url(szFile); |
| 232 | if(url.isRelative()) |
| 233 | url = QUrl::fromLocalFile(szFile); |
| 234 | m_Player.setSource(url); |
| 235 | m_Player.setVideoSink(&m_VideoSink); |
| 236 | #if HAVE_QT6_RECORD |
| 237 | if(m_pParameters->m_Record.GetEnableAudio()) |
| 238 | m_Player.setAudioBufferOutput(&m_AudioBufferOutput); |
| 239 | #endif |
| 240 | m_Player.play(); |
| 241 | |
| 242 | m_nPosition = m_Player.position(); |
| 243 | m_nDuration = m_Player.duration(); |
| 244 | break; |
| 245 | } |
| 246 | default: |
| 247 | break; |
| 248 | } |
| 249 | } |
| 250 | |
| 251 | void CBackendPlayer::slotStop() |
| 252 | { |
nothing calls this directly
no test coverage detected