summaryrefslogtreecommitdiff
path: root/doc/src/examples/player.qdoc
blob: 1c985dc1caf34a5dad7a3712f64968657614f40b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** GNU Free Documentation License
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms
** and conditions contained in a signed written agreement between you
** and Nokia.
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
    \example player
    \title Media Player Example


    This example creates a simple multimedia player. We can play audio and
    or video files using various codecs.

    The example uses a QMediaPlayer object passed into a QVideoWidget to
    control the video output. To give the application playlist capability
    we also use a QPlayList object.

    To activate the various functions such as play and stop on the dialog
    we connect clicked() signals to slots that emit the play() and stop()
    signals and in turn which we connect to the play() and stop() slots in
    QMediaPlayer.

    \code
        connect(controls, SIGNAL(play()), player, SLOT(play()));
        connect(controls, SIGNAL(pause()), player, SLOT(pause()));
        connect(controls, SIGNAL(stop()), player, SLOT(stop()));
    \endcode

    We can get the volume (and set our user interface representation)

    \code
        controls->setVolume(player->volume());
    \endcode

    and we can make widget 'volume' changes change the volume

    \code
        connect(controls, SIGNAL(changeVolume(int)), player, SLOT(setVolume(int)));
    \endcode

    The example also allows us to change various video properties by means
    of the QVideoWidget object. We can go to Full Screen mode with a single
    button click, and back again. Or if we press the "Color Options" dialog
    button we can have access to more subtle influences. The dialog has a
    set of sliders so that we can change the brightness, contrast, hue and
    saturation of the video being watched. The connect() statements are in
    pairs so that changes to either the user interface widget (the relevant
    slider) or the QVideoWidget object will update the other object.

    \code
            connect(brightnessSlider, SIGNAL(sliderMoved(int)), videoWidget, 
                SLOT(setBrightness(int)));
            connect(videoWidget, SIGNAL(brightnessChanged(int)), 
                brightnessSlider, SLOT(setValue(int)));

            connect(contrastSlider, SIGNAL(sliderMoved(int)), videoWidget, 
                SLOT(setContrast(int)));
            connect(videoWidget, SIGNAL(contrastChanged(int)), contrastSlider, 
                SLOT(setValue(int)));

            connect(hueSlider, SIGNAL(sliderMoved(int)), videoWidget, 
                SLOT(setHue(int)));
            connect(videoWidget, SIGNAL(hueChanged(int)), hueSlider, 
                SLOT(setValue(int)));

            connect(saturationSlider, SIGNAL(sliderMoved(int)), videoWidget, 
                SLOT(setSaturation(int)));
            connect(videoWidget, SIGNAL(saturationChanged(int)), 
                saturationSlider, SLOT(setValue(int)));
    \endcode

*/