কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েডে সিঙ্গলটন থেকে টেক্সট-টু-স্পিচ (TTS) কীভাবে ব্যবহার করবেন?

সিঙ্গলটন প্যাটার্ন এবং টেক্সট-টু-স্পিচ

সিঙ্গলটন ডিজাইন প্যাটার্ন একটি ক্লাসের একক ইনস্ট্যান্স নিশ্চিত করে। এই উদাহরণে সিঙ্গলটন ক্লাস থেকে টেক্সট-টু-স্পিচ (TTS) ফাংশনালিটি ব্যবহার করা দেখানো হয়েছে।

ধাপ ১: প্রজেক্ট তৈরি

Android Studio-তে নতুন প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট (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">
    <EditText
        android:id="@+id/editText"
        android:hint="এখানে বলতে চাইলে লিখুন"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/show"
        android:text="সিঙ্গলটন থেকে TTS"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

ধাপ ৩: MainActivity.java

package com.example.ttssingleton;

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

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());

        final EditText editText = findViewById(R.id.editText);
        show.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String text = editText.getText().toString().trim();
                if (!text.isEmpty()) {
                    singletonExample.textToSpeech(text);
                }
            }
        });
    }
}

ধাপ ৪: সিঙ্গলটন ক্লাস (SingleTonExample.java)

package com.example.ttssingleton;

import android.content.Context;
import android.speech.tts.TextToSpeech;
import java.util.Locale;

public class SingleTonExample {
    private static TextToSpeech tts;
    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 void textToSpeech(String text) {
        if (tts == null) {
            tts = new TextToSpeech(get(), new TextToSpeech.OnInitListener() {
                @Override
                public void onInit(int status) {
                    if (status != TextToSpeech.ERROR) {
                        tts.setLanguage(Locale.UK);
                    }
                }
            });
        }
        tts.speak(text, TextToSpeech.QUEUE_FLUSH, null, null);
    }
}

গুরুত্বপূর্ণ নোট

TTS ইনিশিয়ালাইজেশন অ্যাসিঙ্ক্রোনাস। onInit() কলব্যাক পুরা হওয়ার আগে speak() কল করলে কাজ 하지 않을 수 있습니다। প্রোডাকশন কোডে সঠিক লাইফসাইকেল ম্যানেজমেন্ট নিশ্চিত করুন।

পরিচালনা

অ্যাপ্লিকেশন চালান। টেক্সট লিখুন এবং বাটনে ক্লিক করলে সিঙ্গলটন থেকে ভয়েস আউটপুট হবে।

  1. অ্যান্ড্রয়েডে LinkedBlockingDeque ব্যবহার

  2. অ্যান্ড্রয়েডে CopyOnWriteArraySet Cơ bản ব্যবহার

  3. অ্যান্ড্রয়েডে runOnUiThread কীভাবে ব্যবহার করবেন?

  4. অ্যান্ড্রয়েড লোডার (Loader) ব্যবহারের পদ্ধতি