قابلیت دکمه ی تلفظ درا اپ

0 امتیاز
204 بازدید
سوال شده خرداد 16, 1395 توسط android  
سلام وقت بخیر من یه اپ زبان ساختم حالا میخوام واسش قابلیت تلفظ صوتی بزارم کسی هست راهنمایی کنه یا یه منبعی واسه این کار معرفی کنه؟

مرسی
این مطلب را به اشتراک بگذارید

2 پاسخ

0 امتیاز
پاسخ داده شده خرداد 16, 1395 توسط ASHKARAN  

سلام

به لینک زیر سری بزنید :

http://www.tutorialspoint.com/android/android_text_to_speech.htm

 

دارای دیدگاه خرداد 16, 1395 توسط android  
ممنون از راهنماییتون

پروژه من یک آداپتر و یک فرگمنت داره کدهای TextToSpeech رو باید توی کدام بنویسم
دارای دیدگاه خرداد 16, 1395 توسط android  
package adapters;

import android.app.Activity;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.linux.book.R;

import java.util.Collections;
import java.util.List;

import classes.Info_data;
import classes.OnTopListener;
import classes.SetViewHolder;

/**
 * Created by linux on 5/20/16.
 */
public class Adapter_first extends RecyclerView.Adapter<SetViewHolder> {
    public android.content.Context context;
    private Activity activity;
    List<Info_data> items = Collections.emptyList();
    private OnTopListener onTopListener;
    public android.speech.tts.TextToSpeech tts;

    public Adapter_first (Activity activity, List<Info_data> items){
        this.activity = activity;
        this.items = items;
    }

    @Override
    public SetViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.simple_504_first, parent, false);

        SetViewHolder setViewHolder = new SetViewHolder(view);
        return setViewHolder;
    }

    @Override
    public void onBindViewHolder(final SetViewHolder holder, final int position) {
        holder.txtWord.setText(items.get(position).getWord());
        holder.txtMean.setText(items.get(position).getMean());
        holder.txtCoding.setText(items.get(position).getCoding());
        holder.txtSynon.setText(items.get(position).getSynon());
        holder.txtspell.setText(items.get(position).getSpell());

        holder.imgSpell.setOnClickListener (new android.view.View.OnClickListener () {
            @Override
            public void onClick (android.view.View v) {

                final String txt = holder.txtWord.getText ().toString ();
                tts = new android.speech.tts.TextToSpeech (context, new android.speech.tts.TextToSpeech.OnInitListener () {
                    @Override
                    public void onInit (int status) {
                        tts.setLanguage (java.util.Locale.US);
                        tts.speak (txt, android.speech.tts.TextToSpeech.QUEUE_FLUSH, null);
                    }
                });
            }
        });

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (onTopListener != null){
                    onTopListener.OnTopView(position);
                }

            }
        });
    }

    @Override
    public int getItemCount() {
        return items.size();
    }
    public void setOnTopListener(OnTopListener onTopListener){
        this.onTopListener = onTopListener;
    }
}

 

دارای دیدگاه خرداد 16, 1395 توسط android  
جناب آشکاران این کد واسه آداپترم هستش که TextToSpeech رو بکار بردم توش ولی مشکل داره همونجوری که عرض کردم خدمتتون
دارای دیدگاه خرداد 16, 1395 توسط ASHKARAN  
لطفا متن ارور و کد اون قسمتی که از آداپتر استفاده فرمودید رپ هم قرار بدید
دارای دیدگاه خرداد 16, 1395 توسط android  

این متن ارور هستش

06-05 15:31:58.626 4907-4907/com.example.linux.book E/AndroidRuntime: FATAL EXCEPTION: main
                                                                      Process: com.example.linux.book, PID: 4907
                                                                      java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.ContentResolver android.content.Context.getContentResolver()' on a null object reference
                                                                          at android.speech.tts.TtsEngines.getDefaultEngine(TtsEngines.java:114)
                                                                          at android.speech.tts.TextToSpeech.getDefaultEngine(TextToSpeech.java:2067)
                                                                          at android.speech.tts.TextToSpeech.initTts(TextToSpeech.java:768)
                                                                          at android.speech.tts.TextToSpeech.<init>(TextToSpeech.java:723)
                                                                          at android.speech.tts.TextToSpeech.<init>(TextToSpeech.java:702)
                                                                          at android.speech.tts.TextToSpeech.<init>(TextToSpeech.java:686)
                                                                          at adapters.Adapter_first$1.onClick(Adapter_first.java:54)
                                                                          at android.view.View.performClick(View.java:5198)
                                                                          at android.view.View$PerformClick.run(View.java:21147)
                                                                          at android.os.Handler.handleCallback(Handler.java:739)
                                                                          at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                          at android.os.Looper.loop(Looper.java:148)
                                                                          at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)


 

دارای دیدگاه خرداد 16, 1395 توسط android  

کد اون قسمتی که از آدا\تر استفاده کردم رو منظورتون نفهمیدم ولی کد فرگمنت رو واستون مینویسم توی فرگمنت از آدا\ترم استفاده کردم.

به صورت عادی نرم افزار اجرا میشه و هیچ مشکلی نداره و همه چی درسته ولی اون ایکن imageButton که گذاشتم واسه تلفظ لغت انگیسی وقتی روش کلیک میکنم fource cose میده

 

package frags;


import android.database.Cursor;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

import com.example.linux.book.R;

import java.util.ArrayList;

import adapters.Adapter_first;
import classes.DatabaseHelper;
import classes.Info_data;
import classes.OnTopListener;
import jp.wasabeef.recyclerview.adapters.AlphaInAnimationAdapter;
import jp.wasabeef.recyclerview.adapters.ScaleInAnimationAdapter;


/**
 * A simple {@link Fragment} subclass.
 */
public class Frag_first extends Fragment {

    private RecyclerView recyclerView;
    private DatabaseHelper databaseHelper;
    private ArrayList<Info_data> arrayList = new ArrayList<Info_data>();
    private Cursor cursor;
    private Adapter_first adapter_first;

    public Frag_first() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        ViewGroup viewGroup = (ViewGroup) inflater.inflate(R.layout.fragment_frag_first,container,false);
        recyclerView = (RecyclerView) viewGroup.findViewById(R.id.recy_504_first);

        loadDatabase();
        return viewGroup;
    }
    public void loadDatabase (){
        databaseHelper = new DatabaseHelper(getActivity());
        try {


        databaseHelper.checkAndCopyDatabase();
        databaseHelper.openDatabase();
        }catch (SQLiteException e){
            e.printStackTrace();
        }
        try {

        cursor = databaseHelper.QueryData("SELECT * FROM tbl_504 COMPANY LIMIT 0,12");
        if (cursor != null){
            if (cursor.moveToFirst()){
                do {
                    Info_data info_data = new Info_data();
                    info_data.setWord(cursor.getString(1));
                    info_data.setMean(cursor.getString(2));
                    info_data.setCoding(cursor.getString(3));
                    info_data.setSynon(cursor.getString(4));
                    info_data.setSpell(cursor.getString(6));

                    arrayList.add((info_data));
                }while (cursor.moveToNext());
            }
        }
        }catch (SQLiteException e){
            e.printStackTrace();
        }
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
        adapter_first = new Adapter_first(getActivity(), arrayList);
        adapter_first.setOnTopListener(new OnTopListener() {
            @Override
            public void OnTopView(int position) {
                Toast.makeText(getContext(), "Click to" + position, Toast.LENGTH_SHORT).show();

            }
        });
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(linearLayoutManager);
        AlphaInAnimationAdapter alphaInAnimationAdapter = new AlphaInAnimationAdapter(adapter_first);
        ScaleInAnimationAdapter scaleInAnimationAdapter = new ScaleInAnimationAdapter(alphaInAnimationAdapter);
        scaleInAnimationAdapter.setDuration(500);
        scaleInAnimationAdapter.setFirstOnly(false);
        recyclerView.setAdapter(scaleInAnimationAdapter);
    }

}

 

دارای دیدگاه خرداد 16, 1395 توسط android  

سلام مجدد.جناب آشکاران

مشکل رو بر طرف کردم و اینجا هم میگم که دوستان استفاده کنن.

                tts = new android.speech.tts.TextToSpeech (context, new android.speech.tts.TextToSpeech.OnInitListener () 
  

 

توی تیکه کدهای بالا جایی که باید context رو تعریف کنم بجای اینکه مستقیما بنویسم context باید مینوشتم holder.imageSpell.getContext()

که imageSpell اسم همون imageButton هستش

البته شما فرموده بودید که مشکل از context هستش

لینک رفع مشکل

http://stackoverflow.com/questions/32136973/how-to-get-a-context-in-a-recycler-view-adapter

 

 

بازم تشکر از راهنماییتون

دارای دیدگاه خرداد 16, 1395 توسط ASHKARAN  
با تشکر لطفا این دیدگاه رو به عنوان پاسخ ارسال بفرمایید تا به عنوان بهترین پاسخ انتخاب بشه.....

موفق باشید
0 امتیاز
پاسخ داده شده خرداد 16, 1395 توسط android  

سلام مجدد.جناب آشکاران

مشکل رو بر طرف کردم و اینجا هم میگم که دوستان استفاده کنن.

                tts = new android.speech.tts.TextToSpeech (context, new android.speech.tts.TextToSpeech.OnInitListener () 

 

توی تیکه کدهای بالا جایی که باید context رو تعریف کنم بجای اینکه مستقیما بنویسم context باید مینوشتم holder.imageSpell.getContext()

که imageSpell اسم همون imageButton هستش

البته شما فرموده بودید که مشکل از context هستش

لینک رفع مشکل

http://stackoverflow.com/questions/32136973/how-to-get-a-context-in-a-recycler-view-adapter

 

 

بازم تشکر از راهنماییتون

دارای دیدگاه خرداد 16, 1395 توسط android  
ویرایش شده خرداد 16, 1395 توسط android

جناب آشکاران یه مشکل دیگه دارم ظاهرا دست بردار نیست.

وقتی دکمه ی تلفظ رو میزنم کار میکنه و همه چی خوبه اما وقتی دکمه ی back گوشی رو میزنم خارج میشه و فورس کلوز میده

unfortunately Pico TTS has stopped

 

 Activity com.example.linux.book.Activity_first has leaked ServiceConnection android.speech.tts.TextToSpeech$Connection@50adc83 that was originally bound here
                                                                      android.app.ServiceConnectionLeaked: Activity com.example.linux.book.Activity_first has leaked ServiceConnection android.speech.tts.TextToSpeech$Connection@50adc83 that was originally bound here
                                                                          at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:1092)
                                                                          at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:986)
                                                                          at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1303)
                                                                          at android.app.ContextImpl.bindService(ContextImpl.java:1286)
                                                                          at android.content.ContextWrapper.bindService(ContextWrapper.java:604)
                                                                          at android.content.ContextWrapper.bindService(ContextWrapper.java:604)
                                                                          at android.speech.tts.TextToSpeech.connectToEngine(TextToSpeech.java:800)
                                                                          at android.speech.tts.TextToSpeech.initTts(TextToSpeech.java:770)
                                                                          at android.speech.tts.TextToSpeech.<init>(TextToSpeech.java:723)
                                                                          at android.speech.tts.TextToSpeech.<init>(TextToSpeech.java:702)
                                                                          at android.speech.tts.TextToSpeech.<init>(TextToSpeech.java:686)
                                                                          at adapters.Adapter_first$1.onClick(Adapter_first.java:54)
                                                                          at android.view.View.performClick(View.java:5198)
                                                                          at android.view.View$PerformClick.run(View.java:21147)
                                                                          at android.os.Handler.handleCallback(Handler.java:739)
                                                                          at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                          at android.os.Looper.loop(Looper.java:148)
                                                                          at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

 

733 سوال

671 پاسخ

1,177 دیدگاه

334 کاربر

متاسفانه نیستم

این مطلب را به اشتراک بگذارید

ali.ashkaran@gmail
ما .....
  • سعی بر پاسخگویی به سوالات دیگران داریم.
  • به سوال و یا نظر دیگران احترام می گذاریم .
  • این وبسایت را به دیگران معرفی می کنیم.
  • همواره صمیمیت و ادب را رعایت می کنیم.
  • به سوالمان برچسب های مرتبط اضافه می کنیم.
  • در حین طرح سوال فرد خاصی را مخاطب قرار نمی دهیم .
...