JavaFX Media API

Java Technologies - জাভাএফএক্স (JavaFx)
114
114

JavaFX Media API একটি শক্তিশালী ফ্রেমওয়ার্ক যা JavaFX অ্যাপ্লিকেশনে মিডিয়া কন্টেন্ট (অডিও এবং ভিডিও) প্লে করার জন্য ব্যবহৃত হয়। এটি আপনাকে মিডিয়া প্লেয়ার তৈরি করতে এবং মিডিয়া ফাইলগুলোকে অ্যাপ্লিকেশনে ইন্টিগ্রেট করতে সহায়তা করে। JavaFX Media API দিয়ে আপনি সহজেই মিডিয়া ফাইল (যেমন MP3, MP4) প্লে, পজ, পজিশন পরিবর্তন, ভলিউম কন্ট্রোল, এবং মিডিয়া প্লেব্যাকের অন্যান্য কার্যকলাপ করতে পারেন।

JavaFX Media API এর প্রধান ক্লাসসমূহ:

  1. Media: মিডিয়া ফাইলের মেটাডেটা ধারণ করে, যেমন মিডিয়ার URI বা ফাইল পাথ।
  2. MediaPlayer: Media ক্লাসে ধারণকৃত মিডিয়া ফাইল প্লে করার জন্য ব্যবহৃত হয়।
  3. MediaView: MediaPlayer এর মিডিয়া কন্টেন্ট দৃশ্যমান করার জন্য ব্যবহৃত হয়।
  4. MediaException: মিডিয়া লোড বা প্লে করার সময় কোনো ত্রুটি ঘটলে এটি ছোড়া হয়।

JavaFX Media API দিয়ে অডিও এবং ভিডিও প্লে করা

ধাপ 1: JavaFX Media API ব্যবহার করে ভিডিও প্লে করা

নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি ভিডিও ফাইল Media এবং MediaPlayer ক্লাস ব্যবহার করে প্লে করা হয়েছে।

VideoPlayer.java (Main Application):

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;

public class VideoPlayer extends Application {

    @Override
    public void start(Stage primaryStage) {
        // ভিডিও ফাইলের URI বা পাথ
        String videoFile = "file:///path/to/your/video.mp4";  // ভিডিও ফাইলের সঠিক পাথ এখানে বসান

        // Media অবজেক্ট তৈরি
        Media media = new Media(videoFile);

        // MediaPlayer অবজেক্ট তৈরি
        MediaPlayer mediaPlayer = new MediaPlayer(media);

        // MediaView অবজেক্ট তৈরি
        MediaView mediaView = new MediaView(mediaPlayer);

        // ভিডিও প্লে করা
        mediaPlayer.play();

        // স্টেজে MediaView যোগ করা
        Scene scene = new Scene(mediaView, 800, 600);
        primaryStage.setTitle("JavaFX Video Player");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

ব্যাখ্যা:

  1. Media: Media ক্লাসের একটি অবজেক্ট তৈরি করা হয়েছে, যা ভিডিও ফাইলের URI বা পাথ থেকে মিডিয়া লোড করে।
  2. MediaPlayer: MediaPlayer মিডিয়া ফাইলটি প্লে করার জন্য ব্যবহৃত হয়। এটি মিডিয়া অবজেক্ট থেকে ভিডিও বা অডিও স্ট্রিম নিয়ে প্লে করে।
  3. MediaView: MediaView ক্লাসটি মিডিয়া প্লেয়ার থেকে প্লে করা ভিডিও বা অডিওকে দৃশ্যমান করতে ব্যবহৃত হয়।
  4. play(): mediaPlayer.play() মেথডের মাধ্যমে ভিডিও প্লে শুরু করা হয়।

ধাপ 2: অডিও প্লে করা

অডিও ফাইল প্লে করতে একইভাবে Media, MediaPlayer, এবং MediaView ব্যবহার করা হয়।

AudioPlayer.java (Main Application):

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.stage.Stage;

public class AudioPlayer extends Application {

    @Override
    public void start(Stage primaryStage) {
        // অডিও ফাইলের URI বা পাথ
        String audioFile = "file:///path/to/your/audio.mp3";  // অডিও ফাইলের সঠিক পাথ এখানে বসান

        // Media অবজেক্ট তৈরি
        Media media = new Media(audioFile);

        // MediaPlayer অবজেক্ট তৈরি
        MediaPlayer mediaPlayer = new MediaPlayer(media);

        // অডিও প্লে করা
        mediaPlayer.play();

        // স্টেজ সেট করা
        primaryStage.setTitle("JavaFX Audio Player");
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

ব্যাখ্যা:

  1. Media: audio.mp3 এর URI ব্যবহার করে একটি Media অবজেক্ট তৈরি করা হয়েছে।
  2. MediaPlayer: অডিও মিডিয়া ফাইলটি প্লে করার জন্য MediaPlayer ব্যবহার করা হয়েছে।
  3. play(): অডিও প্লে করতে mediaPlayer.play() ব্যবহার করা হয়েছে।

JavaFX Media API এর অন্যান্য বৈশিষ্ট্য:

  1. পজ এবং রিজিউম:
    • mediaPlayer.pause() দিয়ে ভিডিও বা অডিও পজ করা যায়।
    • mediaPlayer.play() দিয়ে রিজিউম করা যায়।
  2. ভলিউম কন্ট্রোল:
    • mediaPlayer.setVolume(double volume) মেথড ব্যবহার করে প্লেব্যাকের ভলিউম নিয়ন্ত্রণ করা যায়। (0.0 থেকে 1.0 পর্যন্ত মান নেওয়া যায়)
  3. পজিশন কন্ট্রোল:
    • mediaPlayer.seek(Duration) দিয়ে মিডিয়ার পজিশন পরিবর্তন করা যায়। Duration ব্যবহার করে নির্দিষ্ট সময়ে প্লেব্যাক শুরু করতে পারেন।
  4. ইভেন্ট হ্যান্ডলিং:
    • MediaPlayer ক্লাসে onEndOfMediaProperty ইভেন্ট ব্যবহার করে মিডিয়া ফাইলের শেষ হলে কোনো কার্যকলাপ ঘটানোর ব্যবস্থা করা যায়।

MediaPlayer এর কিছু গুরুত্বপূর্ণ মেথড:

  • play(): মিডিয়া প্লে শুরু করে।
  • pause(): মিডিয়া প্লে থামিয়ে দেয়।
  • stop(): মিডিয়া সম্পূর্ণভাবে থামিয়ে দেয়।
  • seek(Duration position): মিডিয়ার পজিশন নির্দিষ্ট সময় অনুযায়ী পরিবর্তন করে।
  • setVolume(double volume): প্লেব্যাক ভলিউম সেট করে।
  • setRate(double rate): মিডিয়ার প্লেব্যাক রেট সেট করে (এটি স্পিড পরিবর্তন করে)।

ধাপ 3: স্টাইলিং (CSS) প্রয়োগ করা

JavaFX MediaPlayer এর মাধ্যমে ভিডিও প্লে করার জন্য স্টাইলিং CSS ব্যবহার করা যায়। তবে MediaPlayer স্টাইলিং কম্প্লেক্স হতে পারে, কারণ এটি মূলত একটি ভিডিও প্লোরের UI কম্পোনেন্ট, যার নিজস্ব লেআউট থাকে। তবে, আপনি ভিডিও প্লে করা MediaView এর জন্য CSS প্রয়োগ করতে পারেন।

style.css (CSS):

/* Styling the media view (video player) */
.media-view {
    -fx-background-color: black;
    -fx-border-color: #3498db;
    -fx-border-width: 5px;
}

এটি MediaView এর জন্য একটি কালো ব্যাকগ্রাউন্ড এবং সীমানা যোগ করবে। আপনাকে MediaViewstyleClass প্রয়োগ করতে হবে:

VideoPlayer.java (Updated):

mediaView.getStyleClass().add("media-view"); // Adding the style class to MediaView
scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm());

JavaFX Media API-এর সুবিধা:

  1. অডিও এবং ভিডিও সাপোর্ট: JavaFX Media API দিয়ে আপনি সহজেই মিডিয়া ফাইল প্লে করতে পারেন, যা অন্য প্ল্যাটফর্মের জন্য কোড পুনঃব্যবহারযোগ্য হয়।
  2. ইন্টিগ্রেটেড প্লেব্যাক কন্ট্রোল: আপনি মিডিয়া ফাইলের প্লেব্যাক কন্ট্রোল, ভলিউম এবং পজিশন কন্ট্রোল করতে পারবেন।
  3. ইভেন্ট হ্যান্ডলিং: মিডিয়া ফাইলের বিভিন্ন ইভেন্ট, যেমন onEndOfMedia, onError ইত্যাদি হ্যান্ডল করার সুবিধা।

এভাবে, JavaFX Media API ব্যবহার করে আপনি সহজেই আপনার অ্যাপ্লিকেশনে মিডিয়া কন্টেন্ট প্লে করতে পারেন এবং প্রয়োজনীয় কাস্টমাইজেশন বা কন্ট্রোলিং করতে পারেন।

Content added By

JavaFX এর মাধ্যমে Audio এবং Video Playback

103
103

JavaFX একটি শক্তিশালী গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) ফ্রেমওয়ার্ক, যা মাল্টিমিডিয়া (অডিও এবং ভিডিও) প্লেব্যাক করার জন্যও ব্যবহৃত হতে পারে। JavaFX এর Media এবং MediaPlayer ক্লাসগুলি আপনাকে অডিও এবং ভিডিও ফাইল প্লে করতে সাহায্য করে। এই ক্লাসগুলি আপনি ভিডিও এবং অডিও ফাইলের উপর বিভিন্ন ধরনের কন্ট্রোল যেমন প্লে, পজ, স্টপ, এবং ভলিউম কন্ট্রোল করতে সক্ষম করে।

JavaFX দিয়ে Audio এবং Video Playback

1. Audio Playback in JavaFX

JavaFX তে অডিও প্লেব্যাক করার জন্য Media এবং MediaPlayer ক্লাস দুটি ব্যবহার করা হয়। এই ক্লাসের মাধ্যমে আপনি বিভিন্ন ফাইল ফরম্যাট (যেমন MP3, WAV ইত্যাদি) প্লে করতে পারবেন।

Audio Playback Example:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class AudioPlayerExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // অডিও ফাইলের পথ
        String audioFile = "file:///path/to/your/audiofile.mp3"; // আপনার অডিও ফাইলের পাথ দিন

        // Media অবজেক্ট তৈরি
        Media media = new Media(audioFile);

        // MediaPlayer তৈরি
        MediaPlayer mediaPlayer = new MediaPlayer(media);

        // অডিও প্লেব্যাক শুরু
        mediaPlayer.play();

        // UI সেটআপ
        StackPane root = new StackPane();
        Scene scene = new Scene(root, 300, 250);
        primaryStage.setTitle("Audio Playback Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

বিবরণ:

  • Media ক্লাস একটি মিডিয়া ফাইল লোড করে এবং MediaPlayer ক্লাস এর মাধ্যমে সেই ফাইল প্লে করা হয়।
  • mediaPlayer.play() মেথডটি অডিও প্লে করার জন্য ব্যবহার করা হয়েছে।

2. Video Playback in JavaFX

JavaFX তে ভিডিও প্লেব্যাক করার জন্যও আপনি Media এবং MediaPlayer ক্লাস ব্যবহার করতে পারেন, তবে এখানে আপনাকে MediaView ক্লাসের সাহায্য নিতে হবে যা ভিডিওটি UI তে প্রদর্শন করবে।

Video Playback Example:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class VideoPlayerExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // ভিডিও ফাইলের পাথ
        String videoFile = "file:///path/to/your/videofile.mp4"; // আপনার ভিডিও ফাইলের পাথ দিন

        // Media অবজেক্ট তৈরি
        Media media = new Media(videoFile);

        // MediaPlayer তৈরি
        MediaPlayer mediaPlayer = new MediaPlayer(media);

        // MediaView তৈরি (যা ভিডিও প্রদর্শন করবে)
        MediaView mediaView = new MediaView(mediaPlayer);

        // ভিডিও প্লেব্যাক শুরু
        mediaPlayer.play();

        // UI সেটআপ
        StackPane root = new StackPane();
        root.getChildren().add(mediaView);

        // Scene এবং Stage তৈরি
        Scene scene = new Scene(root, 600, 400);
        primaryStage.setTitle("Video Playback Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

বিবরণ:

  • Media ক্লাসে ভিডিও ফাইল লোড করা হয়।
  • MediaPlayer ক্লাস ভিডিও ফাইলটি প্লে করে।
  • MediaView ক্লাসটি ভিডিও প্লেব্যাকটি UI তে প্রদর্শন করার জন্য ব্যবহার করা হয়।

3. MediaPlayer Control Options:

MediaPlayer ক্লাসে অনেক ধরনের কন্ট্রোল অপশন রয়েছে, যার মাধ্যমে আপনি মিডিয়া ফাইলের প্লেব্যাক নিয়ন্ত্রণ করতে পারেন:

  1. Play/Pause:

    • আপনি মিডিয়া প্লেব্যাক শুরু বা বিরতি নিতে পারবেন।
    mediaPlayer.play();  // প্লে করা
    mediaPlayer.pause(); // বিরতি করা
    
  2. Stop:

    • মিডিয়া প্লেব্যাক বন্ধ করার জন্য:
    mediaPlayer.stop();
    
  3. Volume Control:

    • আপনি MediaPlayer এর মাধ্যমে ভলিউম কন্ট্রোল করতে পারেন:
    mediaPlayer.setVolume(0.5);  // 0.0 থেকে 1.0 পর্যন্ত ভলিউম সেট করুন (0.5 মানে 50%)
    
  4. Seek (Position Control):

    • আপনি ভিডিও বা অডিওর বর্তমান অবস্থান পরিবর্তন করতে পারেন:
    mediaPlayer.seek(Duration.seconds(10));  // 10 সেকেন্ডে স্কিপ করা
    
  5. Looping:

    • মিডিয়া ফাইলটি পুনরায় চালানোর জন্য:
    mediaPlayer.setCycleCount(MediaPlayer.INDEFINITE); // ইনফিনিট লুপ
    

Styling MediaView with CSS:

JavaFX এর MediaView তে আপনি CSS ব্যবহার করে বিভিন্ন স্টাইলিং করতে পারেন যেমন সীমানা, আকার পরিবর্তন ইত্যাদি।

/* Example CSS to style the MediaView */
.media-view {
    -fx-border-color: black;
    -fx-border-width: 5px;
    -fx-effect: dropshadow(gaussian, rgba(0, 0, 0, 0.8), 10, 0, 2, 2);
}

JavaFX Media Features:

  1. Supported Media Formats:
    • JavaFX দ্বারা সমর্থিত মিডিয়া ফরম্যাটে রয়েছে MP3, MP4, AVI, MOV, WAV ইত্যাদি।
  2. Streaming Media:

    • আপনি ওয়েব থেকে স্ট্রিমিং মিডিয়া প্লে করতে পারেন:
    String streamURL = "https://www.example.com/video.mp4";
    Media media = new Media(streamURL);
    
  3. Error Handling:

    • যখন কোনও মিডিয়া ফাইল খোলা বা প্লে করা সম্ভব না হয়, তখন MediaPlayer ক্লাসের onError হ্যান্ডলার ব্যবহার করা যেতে পারে:
    mediaPlayer.setOnError(() -> {
        System.out.println("Error: " + mediaPlayer.getError().getMessage());
    });
    

সারাংশ:

  • JavaFX তে Media এবং MediaPlayer ক্লাসের মাধ্যমে সহজেই অডিও এবং ভিডিও ফাইল প্লেব্যাক করা যায়।
  • আপনি MediaView ব্যবহার করে ভিডিও UI তে প্রদর্শন করতে পারেন।
  • Volume Control, Play/Pause, Seek, এবং Looping সহ বিভিন্ন কন্ট্রোল অপশন উপলব্ধ।
  • JavaFX মিডিয়া ফিচারগুলি ব্যবহার করে আপনি মাল্টিমিডিয়া অ্যাপ্লিকেশন তৈরি করতে পারেন, যা অডিও এবং ভিডিও প্লেব্যাক সমর্থন করে।
Content added By

MediaPlayer এবং MediaView ক্লাসের ব্যবহার

85
85

JavaFX MediaPlayer এবং MediaView ক্লাসগুলি JavaFX-এ মিডিয়া প্লেব্যাকের জন্য ব্যবহৃত হয়। আপনি MediaPlayer ক্লাসটি ব্যবহার করে মিডিয়া ফাইল (যেমন, অডিও বা ভিডিও) প্লে করতে পারেন, এবং MediaView ক্লাসটি ব্যবহার করে সেই মিডিয়া ফাইলের ভিডিও কনটেন্টটিকে ইউজার ইন্টারফেসে প্রদর্শন করতে পারেন।

এগুলি ব্যবহার করে আপনি আপনার JavaFX অ্যাপ্লিকেশনগুলিতে ভিডিও এবং অডিও প্লেব্যাক অন্তর্ভুক্ত করতে পারেন।

MediaPlayer:

MediaPlayer ক্লাসটি মিডিয়া প্লেব্যাক চালানোর জন্য ব্যবহৃত হয়। এটি মিডিয়া ফাইল (যেমন audio, video) লোড, প্লে, পজ, স্টপ, স্কিপ, ভলিউম কন্ট্রোল এবং মিডিয়া সম্পর্কিত অন্যান্য কন্ট্রোল সমর্থন করে।

MediaView:

MediaView ক্লাসটি ভিডিও প্লেব্যাক দেখানোর জন্য ব্যবহৃত হয়। এটি একটি Canvas এর মতো কাজ করে, যেখানে ভিডিও ফ্রেমগুলো প্রদর্শিত হয়। এটি MediaPlayer এর সাথে যুক্ত হয়ে মিডিয়া ফাইলের ভিডিও অংশটি স্ক্রীনে রেন্ডার করে।

JavaFX-এ MediaPlayer এবং MediaView ব্যবহার করার উদাহরণ:

1. সিঙ্গল মিডিয়া প্লেব্যাক (ভিডিও প্লেব্যাক) উদাহরণ

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;

public class MediaPlayerExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // মিডিয়া ফাইলের ইউআরএল অথবা লোকাল পাথ
        String mediaUrl = "file:///C:/path/to/your/video.mp4"; // আপনার ভিডিও ফাইলের পাথ এখানে দিন

        // মিডিয়া ফাইল তৈরি করা
        Media media = new Media(mediaUrl);

        // মিডিয়া প্লেয়ার তৈরি করা
        MediaPlayer mediaPlayer = new MediaPlayer(media);

        // MediaView তৈরি করা যা ভিডিও দেখাবে
        MediaView mediaView = new MediaView(mediaPlayer);

        // StackPane layout তৈরি করা
        StackPane root = new StackPane();
        root.getChildren().add(mediaView);

        // Scene তৈরি এবং সেট করা
        Scene scene = new Scene(root, 640, 480);
        primaryStage.setTitle("JavaFX MediaPlayer Example");
        primaryStage.setScene(scene);

        // ভিডিও প্লে করা
        mediaPlayer.play();

        // স্টেজ প্রদর্শন করা
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

ব্যাখ্যা:

  • Media ক্লাস: মিডিয়া ফাইলের লোকেশন (পাথ বা URL) গ্রহণ করে।
  • MediaPlayer ক্লাস: মিডিয়া ফাইলটি প্লে করার জন্য ব্যবহৃত হয়।
  • MediaView ক্লাস: মিডিয়া ফাইলের ভিডিও অংশটি দৃশ্যমান করতে ব্যবহৃত হয়। এটি MediaPlayer এর সাথে যুক্ত হয়ে ভিডিও স্ক্রীনে রেন্ডার করে।

এখানে, আপনি মিডিয়া ফাইলের পাথ দিন, তারপর MediaPlayer প্লে করবে এবং MediaView ভিডিওটি স্ক্রীনে প্রদর্শন করবে।

2. মিডিয়া প্লে কন্ট্রোল (প্লে, পজ, স্টপ) উদাহরণ

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;

public class MediaPlayerControlsExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // মিডিয়া ফাইলের ইউআরএল
        String mediaUrl = "file:///C:/path/to/your/video.mp4"; // আপনার ভিডিও ফাইলের পাথ এখানে দিন

        // মিডিয়া ফাইল তৈরি করা
        Media media = new Media(mediaUrl);

        // মিডিয়া প্লেয়ার তৈরি করা
        MediaPlayer mediaPlayer = new MediaPlayer(media);

        // MediaView তৈরি করা
        MediaView mediaView = new MediaView(mediaPlayer);

        // Play, Pause, Stop বাটন তৈরি করা
        Button playButton = new Button("Play");
        Button pauseButton = new Button("Pause");
        Button stopButton = new Button("Stop");

        // Play বাটনে ইভেন্ট হ্যান্ডলার
        playButton.setOnAction(e -> mediaPlayer.play());

        // Pause বাটনে ইভেন্ট হ্যান্ডলার
        pauseButton.setOnAction(e -> mediaPlayer.pause());

        // Stop বাটনে ইভেন্ট হ্যান্ডলার
        stopButton.setOnAction(e -> mediaPlayer.stop());

        // Layout তৈরি করা
        StackPane controlPane = new StackPane();
        controlPane.setAlignment(Pos.BOTTOM_CENTER);
        controlPane.getChildren().addAll(playButton, pauseButton, stopButton);

        StackPane root = new StackPane();
        root.getChildren().addAll(mediaView, controlPane);

        // Scene তৈরি এবং সেট করা
        Scene scene = new Scene(root, 640, 480);
        primaryStage.setTitle("Media Player with Controls");
        primaryStage.setScene(scene);

        // ভিডিও প্লে করা
        mediaPlayer.play();

        // স্টেজ প্রদর্শন করা
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

ব্যাখ্যা:

  • এখানে, Play, Pause, এবং Stop বাটন তৈরি করা হয়েছে যা মিডিয়া প্লেব্যাক কন্ট্রোল করতে সহায়তা করে।
  • mediaPlayer.play(), mediaPlayer.pause(), এবং mediaPlayer.stop() মেথড ব্যবহার করে মিডিয়া ফাইলের প্লেব্যাক কন্ট্রোল করা হয়েছে।

৩. মিডিয়া ফাইলের ভলিউম কন্ট্রোল উদাহরণ

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Slider;
import javafx.scene.layout.StackPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;

public class MediaPlayerVolumeControlExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // মিডিয়া ফাইলের ইউআরএল
        String mediaUrl = "file:///C:/path/to/your/video.mp4"; // আপনার ভিডিও ফাইলের পাথ এখানে দিন

        // মিডিয়া ফাইল তৈরি করা
        Media media = new Media(mediaUrl);

        // মিডিয়া প্লেয়ার তৈরি করা
        MediaPlayer mediaPlayer = new MediaPlayer(media);

        // MediaView তৈরি করা
        MediaView mediaView = new MediaView(mediaPlayer);

        // Volume control Slider তৈরি করা
        Slider volumeSlider = new Slider();
        volumeSlider.setMin(0);
        volumeSlider.setMax(1);
        volumeSlider.setValue(0.5); // Default volume is 50%
        
        // Volume slider এর পরিবর্তনে ভলিউম আপডেট করা
        volumeSlider.valueProperty().addListener((observable, oldValue, newValue) -> 
            mediaPlayer.setVolume(newValue.doubleValue())
        );

        // Layout তৈরি করা
        StackPane root = new StackPane();
        root.getChildren().addAll(mediaView, volumeSlider);

        // Scene তৈরি এবং সেট করা
        Scene scene = new Scene(root, 640, 480);
        primaryStage.setTitle("Media Player with Volume Control");
        primaryStage.setScene(scene);

        // ভিডিও প্লে করা
        mediaPlayer.play();

        // স্টেজ প্রদর্শন করা
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

ব্যাখ্যা:

  • Slider কন্ট্রোল ব্যবহার করা হয়েছে ভলিউম কন্ট্রোল করার জন্য।
  • mediaPlayer.setVolume() মেথড ব্যবহার করে ভিডিওর ভলিউম পরিবর্তন করা হয়েছে, এবং এটি স্লাইডারের মাধ্যমে নিয়ন্ত্রিত হচ্ছে।

সারাংশ:

JavaFX এর MediaPlayer এবং MediaView ক্লাসগুলি মিডিয়া প্লেব্যাকের জন্য গুরুত্বপূর্ণ। MediaPlayer মিডিয়া ফাইলটি প্লে, পজ, স্টপ, স্কিপ, ভলিউম কন্ট্রোল ইত্যাদি পরিচালনা করতে সাহায্য করে, এবং MediaView মিডিয়ার ভিডিও অংশটি স্ক্রীনে প্রদর্শন করে।

  • MediaPlayer: মিডিয়া ফাইল (অডিও/ভিডিও) প্লে করতে ব্যবহৃত হয়।
  • MediaView: মিডিয়ার ভিডিও অংশ প্রদর্শন করতে ব্যবহৃত হয়।
  • Controls: প্লেব্যাক কন্ট্রোল যেমন Play, Pause, Stop, Volume Slider ব্যবহার করে মিডিয়া প্লেব্যাক নিয়ন্ত্রণ করা যায়।

এগুলি JavaFX অ্যাপ্লিকেশনে মিডিয়া উপাদান যোগ করার জন্য অত্যন্ত কার্যকরী এবং ব্যবহারযোগ্য টুল।

Content added By

Media Playback Controls এবং Events হ্যান্ডল করা

84
84

JavaFXMedia Playback Controls এবং Events Handling খুবই গুরুত্বপূর্ণ অংশ, বিশেষ করে যখন আপনি মিডিয়া প্লেব্যাকের জন্য একটি ইন্টারেকটিভ ইউজার ইন্টারফেস (UI) তৈরি করছেন। এই ফিচারের মাধ্যমে আপনি অডিও বা ভিডিও ফাইল প্লে, পজ, স্টপ, ফাস্ট ফরওয়ার্ড, রিবাইন্ড ইত্যাদি কন্ট্রোল করতে পারবেন। JavaFX Media এবং MediaPlayer ক্লাস ব্যবহার করে মিডিয়া প্লেব্যাক পরিচালনা করা যায় এবং মিডিয়া প্লেব্যাকের জন্য কন্ট্রোল তৈরি করা হয়।

JavaFX Media Playback Controls and Event Handling

  1. Media: এটি একটি মিডিয়া ফাইলের পাথ বা URI ধারণ করে।
  2. MediaPlayer: এটি Media ক্লাসের সাথে সম্পর্কিত মিডিয়া ফাইলটি প্লে, পজ, বা স্টপ করার জন্য ব্যবহৃত হয়।
  3. MediaView: এটি ভিডিও ডিসপ্লে করার জন্য ব্যবহৃত হয় (যেমন একটি Video প্লেব্যাক)।

উদাহরণ: Media Playback Controls with Event Handling

এখানে একটি সাধারণ উদাহরণ দেওয়া হলো যেখানে Media, MediaPlayer, এবং MediaView ব্যবহার করে একটি ভিডিও প্লেব্যাক কন্ট্রোল তৈরি করা হবে। এর মধ্যে Play, Pause, Stop, এবং Seek (পজিশন পরিবর্তন) কন্ট্রোল থাকবে।

Step 1: JavaFX Media Setup

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Slider;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;

public class MediaPlayerExample extends Application {

    @Override
    public void start(Stage primaryStage) {

        // মিডিয়া ফাইলের URI (এখানে একটি ভিডিও ফাইল ব্যবহার করা হয়েছে)
        String mediaPath = "file:///path/to/your/video.mp4";  // আপনার ভিডিও ফাইলের পাথ দিন

        // মিডিয়া তৈরি করা
        Media media = new Media(mediaPath);

        // মিডিয়া প্লেয়ার তৈরি করা
        MediaPlayer mediaPlayer = new MediaPlayer(media);

        // মিডিয়া ভিউ (ভিডিও ডিসপ্লে করতে)
        MediaView mediaView = new MediaView(mediaPlayer);

        // প্লে বাটন তৈরি করা
        Button playButton = new Button("Play");
        playButton.setOnAction(event -> mediaPlayer.play());

        // পজ বাটন তৈরি করা
        Button pauseButton = new Button("Pause");
        pauseButton.setOnAction(event -> mediaPlayer.pause());

        // স্টপ বাটন তৈরি করা
        Button stopButton = new Button("Stop");
        stopButton.setOnAction(event -> mediaPlayer.stop());

        // স্লাইডার তৈরি করা (ভিডিওতে স্কিপিং করতে)
        Slider timeSlider = new Slider();
        timeSlider.setMin(0);
        timeSlider.setMax(100);
        
        // স্লাইডারের পরিবর্তন ট্র্যাক করা
        mediaPlayer.currentTimeProperty().addListener((observable, oldValue, newValue) -> {
            // মিডিয়া প্লেয়ারের বর্তমান টাইম আপডেট করা
            timeSlider.setValue(newValue.toSeconds());
        });

        // স্লাইডারে ক্লিক করলে ভিডিওর পজিশন পরিবর্তন হবে
        timeSlider.valueProperty().addListener(new ChangeListener<Number>() {
            @Override
            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
                if (timeSlider.isPressed()) {
                    mediaPlayer.seek(javafx.util.Duration.seconds(newValue.doubleValue()));
                }
            }
        });

        // মিডিয়া প্লেব্যাকের জন্য একটি VBox (বা HBox) লেআউট তৈরি করা
        VBox vbox = new VBox(10);
        vbox.getChildren().addAll(mediaView, playButton, pauseButton, stopButton, timeSlider);

        // একটি Scene তৈরি করা
        Scene scene = new Scene(vbox, 640, 480);

        primaryStage.setTitle("JavaFX Media Player Example");
        primaryStage.setScene(scene);
        primaryStage.show();

        // মিডিয়া প্লেব্যাক শুরু করা
        mediaPlayer.setAutoPlay(true);
    }

    public static void main(String[] args) {
        launch(args);
    }
}

ব্যাখ্যা:

  1. Media এবং MediaPlayer:
    • Media ক্লাসটি মিডিয়া ফাইলের URI ধারণ করে, যা আমাদের ভিডিও বা অডিও ফাইল হতে পারে।
    • MediaPlayer ক্লাসটি সেই মিডিয়া ফাইলটি প্লে, পজ, বা স্টপ করতে ব্যবহৃত হয়।
  2. Buttons (Play, Pause, Stop):
    • Play, Pause, এবং Stop বাটন তৈরি করা হয়েছে, যা setOnAction() ইভেন্ট হ্যান্ডলার ব্যবহার করে কার্যকরী করা হয়েছে। অর্থাৎ, প্রতিটি বাটনে ক্লিক করলে নির্দিষ্ট কার্যকলাপ (প্লে, পজ, স্টপ) হবে।
  3. Slider:
    • স্লাইডার ব্যবহার করা হয়েছে মিডিয়া ট্র্যাক করার জন্য (যেমন ভিডিও বা অডিও ফাইলের টাইম সেকশন পরিবর্তন করা)। currentTimeProperty() ব্যবহার করে ভিডিও প্লেব্যাকের সময় ট্র্যাক করা হচ্ছে এবং স্লাইডারে মান আপডেট হচ্ছে।
    • স্লাইডারের মান পরিবর্তিত হলে, mediaPlayer.seek() ফাংশনটি ব্যবহার করে ভিডিও পজিশন পরিবর্তন করা হচ্ছে।
  4. MediaView:
    • MediaView ক্লাসটি ব্যবহার করা হয়েছে ভিডিও ফাইল ডিসপ্লে করার জন্য। এটি মিডিয়া প্লেয়ারের মাধ্যমে ভিডিওটি UI-তে প্রদর্শন করে।
  5. Event Handling:
    • বাটনের setOnAction() ইভেন্ট হ্যান্ডলার দিয়ে প্লেব্যাক কন্ট্রোল (Play, Pause, Stop) পরিচালনা করা হয়েছে।
    • স্লাইডারের valueProperty এবং currentTimeProperty এর মধ্যে ডেটা ব্যান্ডিং ব্যবহার করা হয়েছে, যাতে স্লাইডারের মাধ্যমে ভিডিওর বর্তমান অবস্থান পরিবর্তিত হয় এবং প্লেব্যাক কন্ট্রোল আরও ইন্টারঅ্যাকটিভ হয়।

ব্যবহারিক দিক থেকে এর গুরুত্ব:

  1. Interactivity: ব্যবহারকারীরা সহজেই ভিডিও প্লে, পজ, এবং স্টপ করতে পারবে, পাশাপাশি স্লাইডারের মাধ্যমে ভিডিও ট্র্যাকও করতে পারবে।
  2. Real-Time Updates: স্লাইডারের মাধ্যমে ভিডিও বা অডিও ফাইলের পজিশন পরিবর্তন এবং ট্র্যাকিং সহজ এবং কার্যকর।
  3. Enhanced User Experience: ভিডিও প্লেব্যাকের কন্ট্রোলের জন্য সরল এবং ইন্টারঅ্যাকটিভ UI উপাদান ব্যবহার করে ব্যবহারকারীদের একটি উন্নত অভিজ্ঞতা প্রদান করা যায়।

Additional Event Handling:

JavaFX MediaPlayer ক্লাসে কিছু ইভেন্টও থাকে, যেমন:

  • onReady: মিডিয়া ফাইলটি রেডি হলে কল হয়।
  • onEndOfMedia: মিডিয়া ফাইলটি শেষ হলে কল হয়।
  • onError: যদি কোন ত্রুটি ঘটে, তবে এটি ট্রিগার হবে।

এগুলি ব্যবহার করে আরও ইন্টারঅ্যাকটিভ প্লেব্যাক কন্ট্রোল তৈরি করা যেতে পারে।

JavaFX-এর MediaPlayer এবং MediaView ক্লাস ব্যবহার করে ভিডিও বা অডিও মিডিয়া ফাইল প্লেব্যাক করা সহজ এবং ইন্টারঅ্যাকটিভ হয়। মিডিয়া প্লেব্যাক কন্ট্রোলের জন্য Events Handling এবং Data Binding ব্যবহার করে আপনি ব্যবহারকারীদের আরও রেসপন্সিভ এবং আকর্ষণীয় অভিজ্ঞতা প্রদান করতে পারেন।

Content added By

Practical উদাহরণ: Simple Media Player তৈরি করা

74
74

JavaFX-এ একটি Simple Media Player তৈরি করা একটি দুর্দান্ত প্রজেক্ট যা JavaFX Media API এবং UI Components ব্যবহারের মাধ্যমে করা যায়। এখানে আমরা একটি সাধারণ Media Player তৈরি করব যা একটি ভিডিও বা অডিও ফাইল প্লে করতে সক্ষম হবে।

উদাহরণ: Simple Media Player তৈরি

এই উদাহরণে, আমরা একটি JavaFX Application তৈরি করব যা একটি Media ফাইল (অডিও বা ভিডিও) প্লে করবে। আমরা MediaPlayer, Media, এবং MediaView এর ব্যবহার দেখাব।

১. JavaFX Media Player - Code Implementation

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.scene.media.*;
import javafx.stage.Stage;

import java.io.File;

public class SimpleMediaPlayer extends Application {

    private MediaPlayer mediaPlayer;
    private Media media;
    private MediaView mediaView;

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {

        // Step 1: Choose a media file (you can replace this with your own file)
        String mediaFilePath = "path/to/your/video_or_audio_file.mp4"; // Replace with your file path
        media = new Media(new File(mediaFilePath).toURI().toString());

        // Step 2: Create MediaPlayer and MediaView
        mediaPlayer = new MediaPlayer(media);
        mediaView = new MediaView(mediaPlayer);

        // Step 3: Create play, pause, and stop buttons
        Button playButton = new Button("Play");
        Button pauseButton = new Button("Pause");
        Button stopButton = new Button("Stop");

        // Step 4: Add action listeners for buttons
        playButton.setOnAction(event -> mediaPlayer.play());
        pauseButton.setOnAction(event -> mediaPlayer.pause());
        stopButton.setOnAction(event -> mediaPlayer.stop());

        // Step 5: Create a slider for volume control
        Slider volumeSlider = new Slider();
        volumeSlider.setMin(0);
        volumeSlider.setMax(1);
        volumeSlider.setValue(0.5); // Default volume
        volumeSlider.setBlockIncrement(0.1);
        volumeSlider.setShowTickLabels(true);
        volumeSlider.setShowTickMarks(true);

        // Update media player volume when slider value changes
        volumeSlider.valueProperty().addListener((observable, oldValue, newValue) -> {
            mediaPlayer.setVolume(newValue.doubleValue());
        });

        // Step 6: Create a layout and add components
        VBox vbox = new VBox(10);
        HBox hbox = new HBox(10);

        hbox.getChildren().addAll(playButton, pauseButton, stopButton);
        vbox.getChildren().addAll(mediaView, volumeSlider, hbox);

        // Step 7: Create the scene and add the layout to the scene
        Scene scene = new Scene(vbox, 600, 400);

        // Step 8: Set up the stage
        primaryStage.setTitle("Simple Media Player");
        primaryStage.setScene(scene);
        primaryStage.show();

        // Step 9: Start playing the media when the player is ready
        mediaPlayer.setAutoPlay(true);
    }
}

২. ব্যাখ্যা:

  1. Media and MediaPlayer:
    • Media ক্লাসটি একটি মিডিয়া ফাইল লোড করে, এবং MediaPlayer সেই মিডিয়া প্লে করার জন্য ব্যবহৃত হয়। এখানে media এর মধ্যে আপনার মিডিয়া ফাইলের পাথ দেওয়া হচ্ছে (যেমন ভিডিও বা অডিও ফাইল)। আপনি আপনার মিডিয়া ফাইলের পাথ দিয়ে এটি প্রতিস্থাপন করতে পারেন।
    • mediaPlayer.play()-এর মাধ্যমে মিডিয়া প্লে করা হয়, mediaPlayer.pause()-এর মাধ্যমে প্লে স্থগিত করা হয় এবং mediaPlayer.stop()-এর মাধ্যমে মিডিয়া বন্ধ করা হয়।
  2. MediaView:
    • MediaView ব্যবহার করে আপনি ভিডিও বা অডিও মিডিয়ার ভিজ্যুয়াল রিপ্রেজেন্টেশন দেখতে পারেন। এটি মিডিয়া প্লেয়ারকে প্রদর্শন করে।
  3. Volume Control:
    • আমরা একটি Slider যোগ করেছি যা ব্যবহারকারীকে মিডিয়ার ভলিউম কন্ট্রোল করার সুযোগ দেয়। এটি mediaPlayer.setVolume() মেথডের মাধ্যমে কার্যকর করা হয়েছে।
  4. Buttons:
    • প্লে, পজ, এবং স্টপ বোতামগুলি Button কন্ট্রোল ব্যবহার করে তৈরি করা হয়েছে, এবং এগুলোর ইভেন্ট হ্যান্ডলিংয়ে সংশ্লিষ্ট কাজ সম্পন্ন হয়।
  5. UI Layout:
    • মিডিয়া ভিউ, ভলিউম স্লাইডার এবং বোতামগুলিকে VBox এবং HBox লেআউটে সাজানো হয়েছে। VBox-এ উপাদানগুলি উল্লম্বভাবে এবং HBox-এ উপাদানগুলি অনুভূমিকভাবে সাজানো হয়েছে।

৩. আউটপুট এবং ফিচার:

  • একটি গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) উইন্ডো খোলা হবে যেখানে একটি ভিডিও/অডিও প্লে করা যাবে।
  • Play, Pause, এবং Stop বোতামগুলি ব্যবহার করে মিডিয়া নিয়ন্ত্রণ করা যাবে।
  • Volume Slider ব্যবহার করে ভলিউম নিয়ন্ত্রণ করা যাবে।

৪. এটি কিভাবে কাজ করবে:

  • যখন আপনি প্রোগ্রামটি চালাবেন, এটি MediaPlayer ব্যবহার করে মিডিয়া ফাইলটি লোড করবে এবং সেটি প্লে শুরু করবে।
  • আপনি Play বোতাম দিয়ে মিডিয়া প্লে শুরু করতে পারেন, Pause বোতাম দিয়ে থামাতে পারেন, এবং Stop বোতাম দিয়ে পুরো মিডিয়া বন্ধ করতে পারেন।
  • ভলিউম স্লাইডার ব্যবহার করে আপনি মিডিয়ার ভলিউম নিয়ন্ত্রণ করতে পারবেন।

৫. ফাইল পাথ (File Path):

মিডিয়া ফাইলের পাথ সঠিকভাবে প্রদান করতে হবে। উদাহরণস্বরূপ:

  • Windows: C:\\Users\\User\\Music\\your_audio_or_video.mp4
  • Mac/Linux: /Users/username/Music/your_audio_or_video.mp4

আপনি এই ফাইল পাথটি আপনার মিডিয়া ফাইলের সঠিক অবস্থান দিয়ে প্রতিস্থাপন করুন।

৬. JavaFX Media API:

JavaFX Media API মিডিয়া ফাইল (ভিডিও এবং অডিও) প্লে করতে সহায়তা করে। এটি আপনাকে ভিডিও অথবা অডিও ফাইলের জন্য প্লেয়ার তৈরি করার জন্য প্রয়োজনীয় সব ফিচার প্রদান করে:

  • Media ক্লাস মিডিয়া ফাইলের URL লোড করে।
  • MediaPlayer মিডিয়া ফাইল প্লে, পজ, বা স্টপ করার জন্য ব্যবহৃত হয়।
  • MediaView মিডিয়া ফাইলের ভিজ্যুয়াল রিপ্রেজেন্টেশন প্রদর্শন করে।

সারাংশ:

এই উদাহরণটি একটি সহজ Media Player তৈরি করেছে যেখানে Play, Pause, Stop, এবং Volume Control রয়েছে। JavaFX এর Media API ব্যবহার করে, আপনি সহজেই ভিডিও বা অডিও প্লে করতে পারেন এবং একটি পূর্ণাঙ্গ মিডিয়া প্লেয়ার তৈরি করতে পারবেন।

Content added By
Promotion