Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 自拍偷拍综合网,精品动漫中文字幕一区二区三区 ,国产亚洲精品美女久久久久

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          html多媒體元素基本屬性

          ideo元素與audio元素所具有的屬性大致相同,

          下面來看一下這兩個元素都具有哪些屬性。

           src屬性和autoplay屬性

          src屬性用于指定媒體數據的URL地址。

          autoplay屬性用于指定媒體是否在頁面加載后自動播放,使用方法如下。

          <video src="sample.mov" autoplay="autoplay"></video>

          在文件中創建多媒體元素<video>,并在元素的src屬性中,

          設置播放的視頻文件的URL地址,并設置頁面加載完成后自動播放這個文件。代碼如下。

          <!DOCTYPE HTML>

          <html>

          <head>

          <meta charset="utf-8" />

          <title>使用多媒體元素播放文件</title>

          </head>

          <body>

          <video id="vdoMain" src="../Video/2.ogv" autoplay="true">

          你的瀏覽器不支持視頻

          </video>

          </body>

          </html>

           perload屬性

          perload屬性用于指定視頻或音頻數據是否預加載。如果使用預加載,

          則瀏覽器會預先將視頻或音頻數據進行緩沖,這樣可以加快播放速度,

          因為播放時數據已經預先緩沖完畢。

          該屬性有3個可選值,分別是none、metadata和auto,其默認值為auto。

           none值表示不進行預加載。

           metadata表示只預加載媒體的元數據(媒體字節數、第一幀、播放列表、持續時間等)。

           auto表示預加載全部視頻或音頻。

          該屬性的使用方法如下。

          <video src="sample.mov" preload="auto"></video>

           poster(video元素獨有屬性)和loop屬性

          當視頻不可用時,可以使用該元素向用戶展示一幅替代用的圖片。當視頻不可用時,

          最好使用poster屬性,以免展示視頻的區域中出現一片空白。

          該屬性的使用方法如下。

          <video src="sample.mov" psoter="cannotuse.jpg"></video>

          在文件中創建一個video元素,為video元素設置poster屬性,并選取一幅圖片作為該屬性的值。代碼如下。

          <html>

          <head>

          <meta charset="utf-8" />

          <title>設置video 元素的poster 屬性</title>

          </head>

          <body>

          <video id="vdoMain" src="../Video/2.ogv" controls="true" poster="../Images/1.jpg">

          你的瀏覽器不支持視頻

          </video>

          </body>

          </html>

          運行實例,在播放視頻文件之前,在視頻播放區域中首先將顯示poster屬性指定的圖片,

          loop屬性用于指定是否循環播放視頻或音頻,

          其使用方法如下。

          <video src="sample.mov" autoplay="autoplay" loop="loop"></video>

           controls屬性、width屬性和height屬性(后兩個是video元素獨有屬性)

          controls屬性指定是否為視頻或音頻添加瀏覽器自帶的播放用的控制條。

          控制條中具有播放、暫停等按鈕。其使用方法如下。

          <video src="sample.mov" controls="controls"></video>

          說明

          開發者也可以在腳本中自定義控制條,而不使用瀏覽器默認的控制條。

          width屬性與height屬性用于指定視頻的寬度與高度(以像素為單位),

          使用方法如下。

          <video src="sample.mov" width="500" height="500"></video>

          在文件中創建一個video元素,首先在元素的src屬性中設置需要播放的視頻文件,

          然后分別設置video元素的寬度與高度。代碼如下。

          <html>

          <head>

          <meta charset="utf-8" />

          <title>設置video 元素的大小</title>

          </head>

          <body>

          <video id="vdoMain" src="../Video/2.ogv" autoplay="true" width="360" height="220">

          你的瀏覽器不支持視頻

          </video>

          </body>

          </html>

           error屬性

          在讀取、使用媒體數據的過程中,正常情況下該屬性為null,

          但是任何時候只要出現錯誤,該屬性將返回一個MediaError對象,

          該對象的code屬性返回對應的錯誤狀態碼,其可能的值如下。

           MEDIA_ERR_ABORTED(數值1):媒體數據的下載過程由于用戶的操作而被終止。

           MEDIA_ERR_NETWORK(數值2):確認媒體資源可用,但是在下載時出現網絡錯誤,媒體數據的下載過程被終止。

           MEDIA_ERR_DECODE(數值3):確認媒體資源可用,但是解碼時發生錯誤。

           MEDIA_ERR_SRC_NOT_SUPPORTED(數值4):媒體資源不可用,媒體格式不被支持。

          error屬性為只讀屬性。

           networkState屬性

          該屬性在媒體數據加載過程中讀取當前網絡的狀態,其值如下。

           NETWORK_EMPTY(數值0):元素處于初始狀態。

           NETWORK_IDLE(數值1):瀏覽器已選擇好用什么編碼格式來播放媒體,但尚未建立網絡連接。

           NETWORK_LOADING(數值2):媒體數據加載中。

           NETWORK_NO_SOURCE(數值3):沒有支持的編碼格式,不執行加載。

          networkState屬性為只讀屬性,讀取網絡狀態的實例代碼如下。

           currentSrc屬性、buffered屬性

          可以用currentSrc屬性來讀取播放中的媒體數據的URL地址,該屬性為只讀屬性。

          最靠譜的WEB前端教程——整整140集,全程干貨無廢話,學完變大佬!

          放內存中的音樂

              QFile read("./music/Nevada.mp3");
              if (!read.open(QIODevice::ReadOnly))
              {
                  qDebug() << "文件打開失敗,請重試~";
              }
              //下面用的對象,必須動態申請,不然構造函數執行完畢,局部變量內存會被釋放
              QByteArray *data = new QByteArray(read.readAll());
              read.close();
          
              QBuffer *buffer = new QBuffer(data,this);
              if (!buffer->open(QIODevice::ReadWrite))
              {
                  qDebug() << "buffer error";
              }
              //qDebug() << data;
              QMediaPlayer *player = new QMediaPlayer(this);
              player->setMedia(QMediaContent(),buffer);
              player->play();

          播放內存中的視頻

              QMediaPlayer *player = new QMediaPlayer(this);
              player->setMedia(QUrl("./music/MMD.mp4"));
              player->play();
          ?
              QVideoWidget* videowidget = new QVideoWidget(this);
              player->setVideoOutput(videowidget);

          vs中如果提示編譯器堆空間不足,則打開vcxproj工程文件,在PropertyGroup中添加如下代碼

          <PropertyGroup Label="Globals">
              <!-- 資源文件加載,防止編譯器堆空間不足 -->
               <PreferredToolArchitecture>x64</PreferredToolArchitecture> 
          </PropertyGroup>

          【領QT開發教程學習資料,點擊下方鏈接免費領取↓↓,先碼住不迷路~】

          點擊→領取「鏈接」

          音視頻播放

          播放音頻

          在Qt中,要想使計算機發出響聲,最簡單的方法是調用QApplication : : beep()靜態函數。而Qt Multimedia模塊中提供了多個類來實現不同層次的音頻輸入,輸出和處理。

          QSound

          QSound類提供了播放.wav聲音文件的方法。

          Qt 提供了 GUI 應用程序中最常用的音頻操作:異步播放聲音文件。 使用靜態 play() 函數最容易做到這一點:

           QSound::play("mysounds/bells.wav");

          或者,首先從聲音文件創建一個 QSound 對象,然后調用 play() 槽:

            QSound bells("mysounds/bells.wav");
            bells.play();

          在這兩種情況下,文件可能是本地文件或資源中的文件。

          一旦創建了 QSound 對象,就可以查詢它的 fileName() 和 loops() 總數(即聲音播放的次數)。 可以使用 setLoops() 函數更改重復次數。 播放聲音時,loopsRemaining() 函數返回剩余的重復次數。 使用 isFinished() 函數來確定聲音是否播放完畢。

          使用 QSound 對象播放的聲音可能會比靜態 play() 函數使用更多的內存,但它也可能播放得更快(取決于底層平臺的音頻設施)。

          如果您需要更好地控制播放聲音,請考慮 QSoundEffect 或 QAudioOutput 類。

          Public Functions

          QSound(const QString &filename, QObject *parent = nullptr)
          virtual ~QSound()
          QString fileName() const
          bool isFinished() const
          int loops() const
          int loopsRemaining() const
          void setLoops(int number)

          Slots

          void play()
          void stop()

          Static Public Members

          void play(const QString &filename)

          QSoundEffect

          QSoundEffect類提供了一種播放低延遲聲音效果的方法 。

          這個類允許你以較低的延遲方式播放未壓縮的音頻文件(通常是WAV文件),并且適用于“反饋”類型的聲音,以響應用戶的動作(例如虛擬鍵盤聲音,彈出對話框的正面或負面反饋,或游戲聲音)。 如果低延遲不重要,可以考慮使用QMediaPlayer類,因為它支持更廣泛的媒體格式,并且資源消耗更少。

          看個例子:

          QSoundEffect effect;
          effect.setSource(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/video_call.wav"));
          effect.setLoopCount(QSoundEffect::Infinite);
          effect.setVolume(0.8f);
          effect.play();

          通常應該重用音效,這樣可以提前完成所有解析和準備工作,并且只在必要時觸發。 這有助于降低延遲音頻播放。

          class MyGame
          {
          public:
            MyGame(): m_videoCall(this)
            {
                m_videoCall.setSource(QUrl::fromLocalFile("video_call.wav"));
                m_videoCall.setVolume(0.25f);
          ?
                // Set up click handling etc.
                connect(clickSource, &QPushButton::clicked, &m_videoCall, &QSoundEffect::play);
            }
          private:
            QSoundEffect m_videoCall;
          }

          由于QSoundEffect需要更多的資源來實現較低的延遲播放,平臺可能會限制同時播放聲音效果的數量。

          【領QT開發教程學習資料,點擊下方鏈接免費領取↓↓,先碼住不迷路~】

          點擊→領取「鏈接」

          Public Functions

          • 設置
          //設置源(wav文件路徑)
          void setSource(const QUrl &url)
          //設置循環次數  
          void setLoopCount(int loopCount)
          //設置靜音
          void setMuted(bool muted)
          //設置音量0~1之間
          void setVolume(qreal volume)
          • 判斷
          //音效是否加載完畢
          bool isLoaded() const
          //是否是靜音    
          bool isMuted() const
          //是否正在播放    
          bool isPlaying() const

          Slots

          void play() //播放
          void stop() //停止

          Signals

          void categoryChanged()
          void loadedChanged()
          void loopCountChanged()
          void loopsRemainingChanged()
          void mutedChanged()
          void playingChanged()
          void sourceChanged()
          void statusChanged()
          void volumeChanged()

          枚舉

          QSoundEffect::Status

          枚舉

          描述

          QSoundEffect::Null

          未設置源或源為空。

          QSoundEffect::Loading

          SoundEffect 正在嘗試加載源。

          QSoundEffect::Ready

          源已加載并準備好播放。

          QSoundEffect::Error

          運行過程中出現錯誤,例如加載源失敗。

          QMediaPlayer

          QMediaPlayer類是一個高級媒體播放類。 它可以用來播放歌曲、電影和網絡廣播等內容。 要播放的內容被指定為QMediaContent對象,可以將其視為附加了附加信息的主要或規范URL。 當提供QMediaContent時,可以開始播放。

          QMediaPlayer player;
          player.setMedia(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/That-Girl.mp3"));
          player.setVolume(50);
          player.play();

          QVideoWidget可以與QMediaPlayer一起用于視頻渲染,QMediaPlaylist用于訪問播放列表功能。

          QVideoWidget wid;
          wid.show();
          ?
          QMediaPlaylist playList;
          playList.addMedia(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/That-Girl.mp3"));
          playList.addMedia(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/干坤坤.mp4"));
          ?
          QMediaPlayer player;
          player.setPlaylist(&playList);
          //player.setMedia(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/That-Girl.mp3"));
          player.setVolume(50);
          playList.next();
          player.setVideoOutput(&wid);
          player.play();

          Public Functions

          //該值是當前媒體的總播放時間,以毫秒為單位。 該值可能在QMediaPlayer對象的生命周期中發生變化,并且可能在初始回放開始時不可用,請連接到durationChanged()信號來接收狀態通知。  
          qint64 duration() const
          //將QVideoWidget視頻輸出附加到媒體播放器。  
          void setVideoOutput(QVideoWidget *output)
          void setVideoOutput(QGraphicsVideoItem *output)
          void setVideoOutput(QAbstractVideoSurface *surface)  

          Public Slots

          //暫停播放當前源
          void pause()    
          //開始或恢復播放當前源    
          void play()
          //設置當前媒體源。 使用mediaStatusChanged()和error()信號,以便在加載媒體和加載過程中發生錯誤時得到通知      
          void setMedia(const QMediaContent &media, QIODevice *stream = nullptr)
          //設置靜音    
          void setMuted(bool muted)
          //設置倍速播放
          void setPlaybackRate(qreal rate)
          //設置播放列表    
          void setPlaylist(QMediaPlaylist *playlist)
          //設置播放位置,以媒體開始后的毫秒數為單位。 位置的周期性變化將用信號positionChanged()表示,更新間隔可以用QMediaObject的方法setNotifyInterval()設置。    
          void setPosition(qint64 position)
          //此屬性保存當前播放音量。  播放音量是線性縮放的,從0(靜音)到100(全音量)。默認為100      
          void setVolume(int volume)
          //停止播放,并將播放位置重置到開始    
          void stop()

          Signals

          //表示當前播放內容已更改為media。  
          void currentMediaChanged(const QMediaContent &media)
          //表示內容的持續時間已更改為持續時間,以毫秒表示。  
          void durationChanged(qint64 duration)    
          //產生了錯誤
          void error(QMediaPlayer::Error error)
          //表示媒體來源已轉變為media。      
          void mediaChanged(const QMediaContent &media)
          //表示當前媒體的狀態已經改變    
          void mediaStatusChanged(QMediaPlayer::MediaStatus status)
          //靜音狀態改變  
          void mutedChanged(bool muted)
          //播放速率改變
          void playbackRateChanged(qreal rate)
          //播放位置改變    
          void positionChanged(qint64 position)
          //表示播放器對象的狀態已經改變。  
          void stateChanged(QMediaPlayer::State state)
          //音量改變
          void volumeChanged(int volume)

          枚舉

          (enum QMediaPlayer::Error)媒體播放器產生的具體錯誤。

          枚舉

          描述

          MediaPlayer::NoError

          沒有錯誤發生

          QMediaPlayer::ResourceError

          無法解析媒體源

          QMediaPlayer::FormatError

          媒體資源的格式不受(完全)支持。 重新播放是可能的,但沒有音頻或視頻組件。

          QMediaPlayer::NetworkError

          網絡錯誤

          QMediaPlayer::AccessDeniedError

          沒有播放媒體資源的適當權限。

          QMediaPlayer::ServiceMissingError

          找不到有效的播放服務,無法繼續播放。

          (enum QMediaPlayer::Flag)播放標志。

          枚舉

          描述

          QMediaPlayer::LowLatency

          該播放器預計將用于簡單的音頻格式,播放沒有明顯的延遲。 這種回放服務可以用于蜂鳴聲、鈴聲等。

          QMediaPlayer::StreamPlayback

          該播放器預計將播放基于QIODevice的流。 如果傳遞給QMediaPlayer構造器,將選擇支持流回放的服務。

          QMediaPlayer::VideoSurface

          期望播放器能夠呈現為QAbstractVideoSurface輸出。

          (enum QMediaPlayer::MediaStatus)定義媒體播放器當前媒體的狀態。

          枚舉

          描述

          QMediaPlayer::UnknownMediaStatus

          無法確定媒體的狀態。

          QMediaPlayer::NoMedia

          沒有當前的媒體。 播放器處于停止狀態。

          QMediaPlayer::LoadingMedia

          當前媒體正在加載中。 播放器可能處于任何狀態。

          QMediaPlayer::LoadedMedia

          已加載當前媒體。 播放器處于停止狀態。

          QMediaPlayer::StalledMedia

          由于緩沖不足或其他一些臨時中斷,當前媒體的播放已停止。 播放器處于PlayingState或PausedState

          QMediaPlayer::BufferingMedia

          播放器正在緩沖數據,但緩沖了足夠的數據以供播放。 播放器處于PlayingState或PausedState。

          QMediaPlayer::BufferedMedia

          播放器已經完全緩沖了當前的媒體。 播放器處于PlayingState或PausedState。

          QMediaPlayer::EndOfMedia

          播放已經結束。 播放器處于停止狀態。

          QMediaPlayer::InvalidMedia

          當前媒體無法播放。 播放器處于停止狀態。

          (enum QMediaPlayer::State)媒體播放器的當前狀態。

          枚舉

          描述

          QMediaPlayer::StoppedState

          播放停止狀態

          QMediaPlayer::PlayingState

          播放進行狀態

          QMediaPlayer::PausedState

          播放暫停狀態

          QMediaPlaylist

          QMediaPlaylist類提供了要播放的媒體內容列表。

          QMediaPlaylist旨在與其他媒體對象一起使用,如QMediaPlayer。

          QMediaPlaylist允許訪問服務固有的播放列表功能(如果可用的話),否則它提供本地內存播放列表實現。

            playlist = new QMediaPlaylist;
            playlist->addMedia(QUrl("http://example.com/movie1.mp4"));
            playlist->addMedia(QUrl("http://example.com/movie2.mp4"));
            playlist->addMedia(QUrl("http://example.com/movie3.mp4"));
            playlist->setCurrentIndex(1);
          ?
            player = new QMediaPlayer;
            player->setPlaylist(playlist);
          ?
            videoWidget = new QVideoWidget;
            player->setVideoOutput(videoWidget);
            videoWidget->show();
          ?
            player->play();

          根據播放列表源代碼的實現,大多數播放列表更改操作可以是異步的。

          【領QT開發教程學習資料,點擊下方鏈接免費領取↓↓,先碼住不迷路~】

          點擊→領取「鏈接」

          Public Functions

          • 構造與析構
          QMediaPlaylist(QObject *parent = nullptr)
          virtual ~QMediaPlaylist()
          • 添加/移除/清空媒體
          bool addMedia(const QMediaContent &content)
          bool addMedia(const QList<QMediaContent> &items)
              
          bool insertMedia(int pos, const QMediaContent &content)
          bool insertMedia(int pos, const QList<QMediaContent> &items)    
              
          bool removeMedia(int pos)
          bool removeMedia(int start, int end)
          
          bool clear()
          • 保存/加載播放列表
          bool save(const QUrl &location, const char *format = nullptr)
          bool save(QIODevice *device, const char *format)
          
          void load(const QNetworkRequest &request, const char *format = nullptr)
          void load(const QUrl &location, const char *format = nullptr)
          void load(QIODevice *device, const char *format = nullptr)
          • 獲取播放內容
          int currentIndex() const
          QMediaContent currentMedia() const
          
          QMediaContent media(int index) const
          int nextIndex(int steps = 1) const 
          int previousIndex(int steps = 1) const
              
          int mediaCount() const
          • 操作播放列表
          bool moveMedia(int from, int to)
          void setPlaybackMode(QMediaPlaylist::PlaybackMode mode)
          • 其他
          QMediaPlaylist::Error error() const
          QString errorString() const
              
          bool isEmpty() const
          bool isReadOnly() const

          slots

          void next()
          void previous()
          void setCurrentIndex(int playlistPosition)
          void shuffle()

          signals

          void currentIndexChanged(int position)
          void currentMediaChanged(const QMediaContent &content)
          void loadFailed()
          void loaded()
          void mediaAboutToBeInserted(int start, int end)
          void mediaAboutToBeRemoved(int start, int end)
          void mediaChanged(int start, int end)
          void mediaInserted(int start, int end)
          void mediaRemoved(int start, int end)
          void playbackModeChanged(QMediaPlaylist::PlaybackMode mode)

          枚舉

          (enum QMediaPlaylist::Error)QMediaPlaylist錯誤碼。

          枚舉

          描述

          QMediaPlaylist::NoError

          沒有錯誤

          QMediaPlaylist::FormatError

          格式錯誤

          QMediaPlaylist::FormatNotSupportedError

          格式不支持

          QMediaPlaylist::NetworkError

          網絡錯誤

          QMediaPlaylist::AccessDeniedError

          訪問錯誤(拒絕訪問)

          (enum QMediaPlaylist::PlaybackMode)描述了播放列表中的播放順序。

          枚舉

          描述

          QMediaPlaylist::CurrentItemOnce

          單曲播放一次

          QMediaPlaylist::CurrentItemInLoop

          單曲循環

          QMediaPlaylist::Sequential

          順序播放(列表播放完結束)

          QMediaPlaylist::Loop

          列表循環(列表播放完,從頭開始繼續播放)

          QMediaPlaylist::Random

          隨機播放

          QMediaContent

          QMediaContent類提供對與媒體內容相關的資源的訪問。

          QMediaContent在多媒體框架內用作媒體內容的邏輯句柄。 一個QMediaContent對象包含一個QNetworkRequest,它提供了內容的URL。

          非空QMediaContent將始終具有對通過request()方法可用的內容的引用。

          另外,QMediaContent可以表示播放列表,并包含指向有效QMediaPlaylist對象的指針。 在這種情況下URL是可選的,可以是空的,也可以指向播放列表的URL。

          Public Functions

          QMediaContent(QMediaPlaylist *playlist, const QUrl &contentUrl = QUrl(), bool takeOwnership = false)
          QMediaContent(const QMediaContent &other)
          QMediaContent(const QNetworkRequest &request)
          QMediaContent(const QUrl &url)
          QMediaContent()
          QMediaContent &operator=(const QMediaContent &other)
          ~QMediaContent()
          bool isNull() const
          QMediaPlaylist *playlist() const
          QNetworkRequest request() const
          bool operator!=(const QMediaContent &other) const
          bool operator==(const QMediaContent &other) const

          視頻播放

          QMediaPlayer

          QMediaPlayer類可用來播放視頻,只不過需要搭配專門的視頻顯示控件來使用。

          • 針對視頻播放的函數
          void setVideoOutput(QVideoWidget *output)
          void setVideoOutput(QGraphicsVideoItem *output)
              
          //當前媒體的視頻是否可用,如果可用,可以使用QVideoWidget類來查看視頻。
          bool isVideoAvailable() const    

          QVideoWidget

          • 需包含模塊multimediawidgets

          QVideoWidget類提供了一個小部件,用于呈現由媒體對象生成的視頻。

          將 QVideoWidget 附加到 QMediaObject 允許它顯示該媒體對象的視頻或圖像輸出。 QVideoWidget 通過在其構造函數中傳遞指向 QMediaObject 的指針附加到媒體對象,并通過銷毀 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);
          ?
            videoWidget->show();
            playlist->setCurrentIndex(1);
            player->play();

          注意:一次只能將一個顯示輸出附加到媒體對象。

          Public Functions

          QVideoWidget(QWidget *parent = nullptr)
          virtual ~QVideoWidget()
              
          Qt::AspectRatioMode aspectRatioMode() const
          int brightness() const      //亮度
          int contrast() const        //對比度
          int hue() const             //色調
          bool isFullScreen() const   //是否全屏
          int saturation() const      //飽和度

          Slots

          //設置視頻縮放時,寬度和高度的變化模式
          void setAspectRatioMode(Qt::AspectRatioMode mode)
          //調整顯示視頻的亮度。有效亮度值范圍在 -100 到 100 之間,默認值為 0。    
          void setBrightness(int brightness)
          //調整顯示的視頻的對比度。有效對比度值范圍在-100到100之間,默認值為0。     
          void setContrast(int contrast)
          //調整顯示視頻的色調。有效的色調值范圍在 -100 到 100 之間,默認值為 0。    
          void setHue(int hue)
          //調整顯示視頻的飽和度。 有效的飽和度值范圍在-100到100之間,默認值是0。
          void setSaturation(int saturation)    
          //設置窗口全屏顯示    
          void setFullScreen(bool fullScreen)

          Signals

          //亮度改變
          void brightnessChanged(int brightness)
          //對比度改變    
          void contrastChanged(int contrast)
          //是否全屏狀態改變    
          void fullScreenChanged(bool fullScreen)
          //飽和度改變    
          void saturationChanged(int saturation)
          //色調改變    
          void hueChanged(int hue)    

          https://www.cnblogs.com/lxuechao/p/12677357.html

          攝像機

          QCameraInfo

          QCameraInfo 類提供有關相機設備的一般信息。

          QCameraInfo 允許您查詢系統上當前可用的相機設備。

          靜態函數 defaultCamera() 和 availableCameras() 為您提供所有可用相機的列表。

          此示例打印所有可用相機的名稱:

           const QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
           for (const QCameraInfo &cameraInfo : cameras)
               qDebug() << cameraInfo.deviceName();

          一個QCameraInfo可以用來構造一個QCamera。 下面的例子實例化所有可用相機設備中第一個相機設備QCamera:

            const QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
            camera = new QCamera(cameras.first());

          你也可以使用QCameraInfo來獲得一個相機設備的一般信息,例如描述,在系統上的物理位置,或相機傳感器的方向。

           QCamera myCamera;
            QCameraInfo cameraInfo(myCamera);
          ?
            if (cameraInfo.position() == QCamera::FrontFace)
                qDebug() << "攝像頭位于硬件系統的正面。";
            else if (cameraInfo.position() == QCamera::BackFace)
                qDebug() << "攝像頭位于硬件系統的背面。";
          ?
            qDebug() << "相機傳感器方向是 " << cameraInfo.orientation() << " 度.";

          QCamera

          QCamera類為系統攝像機設備提供接口。

          QCamera可以與QCameraViewfinder一起使用,用于取景器顯示,QMediaRecorder用于視頻錄制,QCameraImageCapture用于圖像拍攝。

          你可以使用QCameraInfo列出可用的相機并選擇使用哪一個。

          Public Functions

          • 設置捕獲模式
          QCamera::CaptureModes captureMode() const
          void setCaptureMode(QCamera::CaptureModes mode)
          • 設置取景器
          void setViewfinder(QVideoWidget *viewfinder)
          void setViewfinder(QGraphicsVideoItem *viewfinder)

          枚舉

          QCamera::CaptureMode

          捕獲模式

          枚舉

          描述

          QCamera::CaptureViewfinder

          取景器模式,只是簡單的顯示

          QCamera::CaptureStillImage

          幀捕獲模式,比如:拍照

          QCamera::CaptureVideo

          視頻捕獲模式,比如:錄制視頻

          在多個HTML頁面之間切換時持續播放背景音樂,可以使用JavaScript和localStorage來實現。這里有一個簡單的實現方案:

          1. 創建一個隱藏的音頻播放器: 在每個HTML頁面的<body>標簽內添加一個隱藏的音頻標簽,并設置自動播放和循環播放屬性。
          1. 使用JavaScript控制音頻狀態: 當頁面加載時,檢查localStorage中是否有音樂正在播放的狀態,如果有,則恢復播放。同時,當頁面離開時,記錄音樂的播放狀態到localStorage。

          下面是一個簡化版的多頁面背景音樂連續播放的Demo示例。這個例子包含兩個HTML文件:index.html 和 page2.html。請確保你有相應的音頻文件(如music.mp3)并放置在與HTML文件相同的目錄下。

          index.html

          <!DOCTYPE html>
          <html lang="en">
              <head>
                  <meta charset="UTF-8" />
                  <title>首頁</title>
                  <style>
                      #backgroundMusic {
                          display: none;
                      }
                  </style>
              </head>
              <body>
                  <h1>首頁</h1>
                  <p>這是首頁,背景音樂會持續播放。</p>
                  <a href="page2.html">前往第二頁</a>
          
                  <audio controls id="backgroundMusic" loop>
                      <source src="https://img.mtsws.cn/LightPicture/2023/08/45f935a39d0189c0.mp3" type="audio/mpeg" />
                      您的瀏覽器不支持 audio 元素。
                  </audio>
          
                  <script>
                      document.addEventListener('DOMContentLoaded', function () {
                          var audio = document.getElementById('backgroundMusic')
                          setupMusic(audio)
                      })
          
                      function setupMusic(audio) {
                          var musicTime = parseFloat(localStorage.getItem('musicTime')) || 0
                          var isPlaying = localStorage.getItem('musicPlaying') === 'true'
          
                          audio.currentTime = musicTime
                          if (isPlaying) {
                              audio.play().catch(function (error) {
                                  console.error('自動播放被阻止:', error)
                              })
                          }
          
                          audio.onplay = function () {
                              localStorage.setItem('musicPlaying', true)
                          }
                          audio.onpause = function () {
                              localStorage.setItem('musicPlaying', false)
                          }
                          audio.ontimeupdate = function () {
                              localStorage.setItem('musicTime', audio.currentTime)
                          }
                      }
                  </script>
              </body>
          </html>
          

          page2.html

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>第二頁</title>
              <style>
                  #backgroundMusic { display: none; }
              </style>
          </head>
          <body>
          
          <h1>第二頁</h1>
          <p>切換到第二頁,背景音樂仍然連續播放。</p>
          <a href="index.html">返回首頁</a>
          
          <audio id="backgroundMusic" src="music.mp3" loop></audio>
          
          <script>
              document.addEventListener('DOMContentLoaded', function() {
                  var audio = document.getElementById('backgroundMusic');
                  setupMusic(audio);
              });
          
              // 與index.html中相同的setupMusic函數,確保音樂播放邏輯一致
              function setupMusic(audio) {/*...函數內容與上文相同...*/}
          </script>
          </body>
          </html>

          在這個示例中,index.html 和 page2.html 都包含了相同的JavaScript邏輯來管理背景音樂的播放狀態和時間。當用戶在頁面間導航時,音樂將會無縫繼續播放,而不是重新開始。請根據實際需要調整音頻文件路徑和其他細節。


          主站蜘蛛池模板: 国产伦精品一区二区三区精品| 日韩人妻精品无码一区二区三区| 久久亚洲综合色一区二区三区| 精品无码一区二区三区在线| 视频一区视频二区在线观看| 久久人做人爽一区二区三区| 国产一在线精品一区在线观看| 日韩精品一区二区三区国语自制 | 精品国产日韩一区三区| 国产一区二区三区91| 视频一区二区三区在线观看| 成人区人妻精品一区二区不卡| 国产韩国精品一区二区三区久久| 国产内射在线激情一区| 免费无码一区二区三区蜜桃| 亚洲人AV永久一区二区三区久久| 国产精品一区二区久久沈樵| 国产剧情一区二区| 国产高清视频一区二区| 国内精品视频一区二区三区八戒 | 无码AV动漫精品一区二区免费| 亚洲熟女乱色一区二区三区 | 一区二区三区免费看| 内射白浆一区二区在线观看| 国产丝袜一区二区三区在线观看| 成人免费一区二区三区在线观看| 性盈盈影院免费视频观看在线一区 | 午夜DV内射一区区| eeuss鲁片一区二区三区| 国产精品久久久久久一区二区三区 | 亚洲国产综合精品一区在线播放| 一区二区国产精品| 国产亚洲一区区二区在线| 国产午夜精品一区理论片| 乱码精品一区二区三区| 亚洲欧美日韩中文字幕在线一区| 国产精品一区二区三区久久 | 色婷婷一区二区三区四区成人网 | 中文字幕亚洲乱码熟女一区二区 | 国产伦一区二区三区免费| 一区二区三区AV高清免费波多|