JavaFX - 處理媒體



一般來說,媒體指的是各種通訊手段,例如音訊、影片和其他形式,這些形式既可以是單向的,也可以是雙向的。它以音樂、電影、新聞、影片部落格等形式使用。

由於媒體的使用已成為我們生活中不可或缺的一部分,因此 JavaFX 建立者開發了一套 Java API,使 JavaFX 應用程式能夠使用媒體。

在 JavaFX 中處理媒體

為了處理媒體,JavaFX 提供了 **javafx.scene.media** 包,該包允許開發人員在支援媒體播放的平臺上將媒體播放器嵌入到桌面視窗或網頁中。此包包含以下類,這些類組合使用以處理媒體內容 -

  • **Media** - 它包含指定媒體資源的源、解析度和元資料等資訊。

  • **MediaPlayer** - 它提供控制媒體播放的控制元件。

  • **MediaView** - 它是一個節點物件,用於為媒體資源提供動畫和其他效果的支援。

Media Classes

上面提到的類不是獨立的,它們總是組合使用來建立一個嵌入式媒體播放器。控制媒體播放所需的所有屬性和方法都可在 **MediaPlayer** 類中使用。更具體地說,**play()**、**stop()** 和 **pause()** 方法用於控制媒體播放。要調整音量級別,我們使用 VOLUME 變數。音量級別的範圍為 0 到 1.0(最大值)。

請記住,沒有 **MediaView** 類,我們就無法檢視媒體播放器正在播放的媒體。

還有一些其他附加方法用於處理以下事件 -

  • 緩衝資料

  • 每當發生 MediaErrorEvent 類的任何錯誤時。

  • 當媒體停止播放,因為媒體播放器接收到的資料不足以繼續播放。

  • 當媒體播放器到達媒體末尾時。

JavaFX 中支援的媒體格式

JavaFX 支援以下媒體格式 -

序號 媒體和格式
1

音訊

MP3、AIFF、WAV 和 MPEG-4

2

影片

包含 VP6 影片和 MP3 音訊的 FLV 和 MPEG-4

JavaFX 媒體提供的功能

在支援 JavaFX 的裝置上,JavaFX 媒體提供以下功能 -

  • 它支援多種播放功能,例如播放、暫停、停止、音量和靜音。

  • 它允許根據需要向前或向後導航音訊/影片。

  • 它支援 HTTP 和檔案協議。

  • 漸進式下載

  • 它還支援 HTTP 即時流。

處理媒體引用

以下是 JavaFX 中用於處理媒體的類和方法。

Media

JavaFx 中的 Media 類就像音訊影片檔案的容器。它包含指定媒體資源的源、解析度和元資料等資訊。下面列出了一些 'Media' 類的使用方法 -

序號 方法和描述
1 getDuration()

檢索媒體的持續時間(以秒為單位)。

2 getWidth()

檢索媒體的寬度(以畫素為單位)。

3 getHeight()

檢索媒體的高度(以畫素為單位)。

4 getSource()

檢索媒體的源 URI。

5 getError()

返回媒體中遇到的任何錯誤。

MediaPlayer

MediaPlayer 類控制音訊和影片檔案,並允許執行播放、暫停和停止等功能,從而簡化媒體控制。下面列出了一些 'MediaPlayer' 類的使用方法 -

序號 方法和描述
1 getStatus()

檢索當前播放器狀態。

2 getVolume()

檢索音訊播放音量。

3 setRate()

將播放速率設定為提供的數值。

4 isAutoPlay()

檢索 autoPlay 屬性的值。

5 getBlance()

檢索音訊平衡。

6 setMute()

設定 muteProperty() 的值。

7 getStartTime()

檢索開始時間。

8 getStopTime()

檢索停止時間。

9 getTotalDuration()

檢索總播放時長,包括所有迴圈(重複)。

10 stop()

停止播放媒體。

MediaView

JavaFX 中的 MediaView 類是一個特殊的類,用於顯示 MediaPlayer 播放的影片或媒體。下面列出了一些 'MediaView' 類的常用方法:

序號 方法和描述
1 getX()

獲取 MediaView 原點的 x 座標。

2 getY()

獲取 MediaView 原點的 y 座標。

3 setSmooth()

設定縮放媒體時是否進行平滑處理。

4 getViewPort()

獲取媒體幀中的矩形視口。

5 isPreserveRatio()

設定縮放時是否保持媒體縱橫比。

6 getFitHeight()

獲取調整大小後的媒體的邊界框的高度。

7 getFitWidth()

獲取調整大小後的媒體的邊界框的寬度。

廣告