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

JavaFX Media API - জাভাএফএক্স (JavaFx) - Java Technologies

275

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
Promotion

Are you sure to start over?

Loading...