목록알쓸전컴 (343)
알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)
QMediaObject QMediaObject 는 QMediaPlayer, QAudioDecoder and QCamera, 의 공통 부모 클래스로 되어 있습니다. 그리고 QMediaService.로 제어를 합니다. 그리고 QMediaService 는 QMediaControl 를 상속 받는 클래스들 가져와 줄수 있게 합니다. QMediaControl 를 가져올때는 QMediaService 를 통해서 가져와야 된다고 합니다. 대부분 QMediaObject 는 new QMediaService 객체를 요구 하지만 몇 몇 QMediaRecorder and QAudioRecorder 서비스는 다른 QMediaObject 의 QMediaService 를 공유합니다. 이야기는 대충 이정도 되는것 같습니다. 맨땡에 해딩..
비디오 위젯 예제 분석 데이터의 흐름을 파악(2) 지난번 mediaPlayer.play(); 가 동영상을 재생하는 과정 까지 어떻게 데이터가 전달되어 동영상으로 재생 되는지 알아 보겠습니다. 이번에는 \Src\qtmultimedia\src\multimedia 의 multimedia.pro 프로젝트를 열어서 play() 메소드를 찾아야 합니다. Src\qtmultimedia\src\multimedia\playback\qmediaplayer.cpp 을 보겠습니다. qmediaplayer.cpp void QMediaPlayer::play() { Q_D(QMediaPlayer); if (d->control == 0) { QMetaObject::invokeMethod(this, "_q_error", Qt::Que..
비디오 위젯 예제 다운로드 Qt 설치시에 소스 파일을 설치 하게 되거나 http://download.qt.io/official_releases/qt/5.7/5.7.0/submodules/ 의 공식 Qt 배포 사이트에 가면 qtmultimedia-opensource-src-5.7.0.zip 가 존재 합니다. 해상 소스에는 qtmultimedia 소스와 예제 소스가 들어 있습니다. 온라인 설치 파일로 설치 했을때에는 체크를 하면 소스가 5.7 폴더 안에 설치가 됩니다. qtmultimedia\examples\multimediawidgets\customvideosurface\customvideowidget 의 예제 에서 시작 하려고 합니다. customvideowidget.pro 파일을 Qtcreater 에서..
Multimedia Recipes 멀티 미디어 에서는 득정 프로그램을 만들때 어떠한 클래스가 유용한고 필요한지에 대한 레시피 표를 제공 합니다 . 자세한 정보는 http://doc.qt.io/qt-5/multimediaoverview.html 에서 확인 할수 있습니다.
Camera 구현 세부 정보 Detecting and Selecting Camera 사용할수 있는 카메라의 정보에 접근 할수 있습니다. bool checkCameraAvailability() { if (QCameraInfo::availableCameras().count() > 0) return true; else return false; }여러대의 카메라를 사용할 수 있는 경우 사용할 것을 지정할 수 있습니다.QList cameras = QCameraInfo::availableCameras(); foreach (const QCameraInfo &cameraInfo, cameras) { if (cameraInfo.deviceName() == "mycamera") camera = new QCamera(cam..
Oracle DB 연동 (QOCI) OCI BLOB/LOB Support 도 한다. OCI BLOB/LOB Support 설명은 QT doc 에 잘 나와 있다. 오라클 9 버전과 10 버전 이상 드라이버 작성 방식이 다른데 기본 원리는 똑같으므로 10 버전 이상으로 설명 하겠습니다. Qt 문서 설명된것으로는 cd $QTDIR/qtbase/src/plugins/sqldrivers/oci qmake "INCLUDEPATH+=/usr/include/oracle/10.1.0.3/client/" "LIBS+=-L/usr/lib/oracle/10.1.0.3/client/lib -lclntsh" oci.pro make이렇게 나와 있습니다. 여기서 필요한 파일을 받고 드라이버를 직접 설치 해 보겠습니다. 필요한 파일을..
Playing Video in C++QMediaPlayer class 는 비디오 파일을 디코딩 할수 있습니다. 그리고 보여줄때 QVideoWidget, QGraphicsVideoItem 또는 커스텀 클래스를 사용합니다. QVideoWidget 사용할때player = new QMediaPlayer; playlist = new QMediaPlaylist(player); playlist->addMedia(QUrl("http://example.com/myclip1.mp4")); playlist->addMedia(QUrl("http://example.com/myclip2.mp4")); videoWidget = new QVideoWidget; player->setVideoOutput(videoWidget); vid..
Playing Compressed Audio 압축된 형태 여기서는 인코딩된 데이터를 재생할수 있는 API 가 제공 된다고 합니다. 미디어 또는 오디오의 파일을 재상하는것은 쉽지 않다고 합니다. 그이유는 각각의 인코딩하는 법과 디코딩하는것을 알고리즘을 구현하는데 맨땅에 해딩으로는 어려운 면이 있습니다. QMediaPlayer C++ class 또는 the Audio and MediaPlayer QML types. 을사용하면 이러한 인코딩된 데이터를 사용할수 있다고 합니다. QMediaPlayer class 와 관련된 QML 은 비디오를 재생 할수 있습니다. 지원되는 압축된 오디오 형식은 운영 체제 환경에 따라 달라지며 사용자가 설치할 수 있는 미디어 플러그 인에 따라 달라집니다. 로컬 파일을 실행하는 코드..
Multimedia Components 멀티미디어 컴포넌트는 대표적으로 4개가 있습니다. Audio OverviewVideo OverviewCamera OverviewRadio Overview각각에 대해서 간단히만 살펴 봐야 할것 같습니다. 각각의 파트가 어떠한 기능을 가지고 있는지 말이죠. Audio API 특징 Audio에 관한 부분에 low 부터 high 레벨까지 광범위 하게 커버할수 있다고 합니다. 자신감이 대단하네요 그리고 전통적인 부분의 오디오 까지 사용할수 있게 했다고 합니다. QML 은 3D 포지셔닝 API 도 지원한다고 하네요 C++ 에서는 지원을 안하는것 같습니다. 3D 포지셔닝은 요즘 차에 보면 자리에 맞춰 소리 위치를 변경하는 시스템 같은게 있는데 그것 같습니다. Video API ..
Qt Multimedia 자료가 많이 존재 하지 않기 때문에 철저히 http://doc.qt.io/qt-5/qtmultimedia-index.html QT 사이트 문서를 보고 따라가는게 힘들지만 가장 효율적으로 보입니다. Qt Multimedia 를 분석하는 이유는 스트림 서비스를 개발하기 위한 라이브러리 학습및 개념 학습을 이해서 입니다. QT에서 Qt Multimedia 는 QML 과 C++ 2가지 를 제공 합니다. C++ 위주로 가겠습니다. 현재 QML 대단히 마이너한 언어로 C++로 한다음 추후 QML 강의를 하고 다서 다시 Qt Multimedia 를 다루는것이 좋을듯 합니다. 일단 개념으로 비디오,오디오,카메라 제어 를 하는데 필요한 API 를 모아두었다고 합니다. 그리고 신기한건 Radio ..