Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android में मीडिया प्लेयर सिंगलटन का उपयोग कैसे करें?

सिंगलटन पैटर्न और मीडिया प्लेयर

सिंगलटन डिज़ाइन पैटर्न किसी क्लास के इंस्टेंशिएशन को एक इंस्टेंस तक सीमित करता है। मीडिया प्लेयर के लिए सिंगलटन उपयोगी है क्योंकि यह संसाधन-गहन होता है और एक समय में एक ही इंस्टेंस होना चाहिए।

उदाहरण: मीडिया प्लेयर सिंगलटन

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project चुनें।

चरण 2: लेआउट फ़ाइल (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <Button
        android:id="@+id/show"
        android:text="सिंगलटन से गाना चलाएं"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

चरण 3: MainActivity.java

package com.example.mediaplayersingleton;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    Button show;
    SingletonExample singletonExample;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        show = findViewById(R.id.show);
        singletonExample = SingletonExample.getInstance();
        singletonExample.init(getApplicationContext());

        show.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MediaPlayer mediaPlayer = singletonExample.getSingletonMedia();
                mediaPlayer.start();
            }
        });
    }
}

चरण 4: सिंगलटन क्लास (SingletonExample.java)

package com.example.mediaplayersingleton;

import android.content.Context;
import android.media.MediaPlayer;

public class SingletonExample {

    private static MediaPlayer mediaPlayer;
    private static SingletonExample ourInstance = new SingletonExample();
    private Context appContext;

    private SingletonExample() { }

    public static Context get() {
        return getInstance().getContext();
    }

    public static synchronized SingletonExample getInstance() {
        return ourInstance;
    }

    public void init(Context context) {
        if (appContext == null) {
            this.appContext = context;
        }
    }

    private Context getContext() {
        return appContext;
    }

    public static MediaPlayer getSingletonMedia() {
        if (mediaPlayer == null) {
            // ग्लोबल कॉन्टेक्स्ट का उपयोग करके मीडिया प्लेयर बनाएं
            mediaPlayer = MediaPlayer.create(get(), R.raw.sample);
        }
        return mediaPlayer;
    }
}

आवश्यक संसाधन

res/raw/sample.mp3 (या कोई ऑडियो फ़ाइल) रखें।

ऐप चलाएं

ऐप लॉन्च करें और "सिंगलटन से गाना चलाएं" बटन दबाएं। सिंगलटन क्लास से मीडिया प्लेयर गाना चलाना शुरू करेगा।

महत्वपूर्ण नोट्स और सुधार

  • मूल कोड में if (ref = = null) सिंटैक्स त्रुटि थी - सही है if (ref == null)
  • MediaPlayer.create() के लिए ग्लोबल कॉन्टेक्स्ट (getApplicationContext()) का उपयोग सही है
  • मीडिया प्लेयर को रिलीज़ करना न भूलें: mediaPlayer.release() और mediaPlayer = null
  • कंप्लीशन लिस्टनर सेट करें ताकि प्लेबैक खत्म होने पर रीसेट हो सके
  • अनावश्यक इंपोर्ट हटाए गए (View, ViewGroup, ArrayList, Timer)

मुख्य बिंदु

  • सिंगलटन मीडिया प्लेयर इंस्टेंस को पुन: उपयोग करता है
  • लेज़ी इनिशियलाइज़ेशन: पहली बार उपयोग होने पर बनता है
  • ग्लोबल कॉन्टेक्स्ट एक्टिविटी लीक रोकता है
  • उत्पादन ऐप्स के लिए: ExoPlayer या Media3 लाइब्रेरी पर विचार करें
  1. LocalBroadcastManager का उपयोग कैसे करें? LocalBroadcastManager का उपयोग कैसे करें?

    LocalBroadcastManager - ऐप-आंतरिक इवेंट बस नोट: LocalBroadcastManager **डिप्रिकेट** है (AndroidX 1.1.0+ से)। आधुनिक ऐप्स को **LiveData/Flow**, **RxJava**, या **इवेंट बस लाइब्रेरी (greenrobot EventBus, Kotlin Channel/Flow)** का उपयोग करना चाहिए। यह लेख लीगेसी API को दस्तावेज करता है और माइग्रेशन पथ द

  1. एंड्रॉइड में हैंडलर का उपयोग कैसे करें? एंड्रॉइड में हैंडलर का उपयोग कैसे करें?

    एंड्रॉइड में Handler - सही उपयोग और आधुनिक विकल्प Handler एक लूपर से जुड़े थ्रेड पर चलने के लिए Runnable/Message को एनक्यू करता है। सामान्य उपयोग: मुख्य थ्रेड पर UI अपडेट शेड्यूल करना, विलंबित कार्य, या बैकग्राउंड थ्रेड से मुख्य थ्रेड पर पोस्ट करना। मुख्य थ्रेड Handler (सबसे आम) uiTextView.setText

  1. एंड्रॉइड में ViewFlipper का उपयोग कैसे करें? एंड्रॉइड में ViewFlipper का उपयोग कैसे करें?

    एंड्रॉइड में ViewFlipper के साथ व्यू फ्लिपिंग एनिमेशन यह ट्यूटोरियल ViewFlipper का उपयोग करके व्यूज़ के बीच एनिमेटेड ट्रांजिशन बनाने का तरीका दिखाता है, जिसमें ऑटो-फ्लिपिंग और मैनुअल नेविगेशन शामिल है। लेआउट (activity_main.xml) <RelativeLayout xmlns:android=https://schemas.android.com/apk/res/an