2016-08-11 5 views
0

特定のTextViewを選択/タッチすると、オーディオが再生されます。私が直面している問題は、テキストを3回タッチして再生する必要があることです。TextViewがタッチされたときにオーディオを再生する

アクティビティが起動すると、最初のTexTViewが自動的にスクロールし始め、2番目のスクロールは最初にクリックされたときにのみスクロールします。私は、TextViewsがクリックされたときにのみスクロールし、FIRSTクリック自体で再生を開始するようにします。

はここにあなたの最初のクリックでlayuotファイル

       <TextView 
           android:id="@+id/text1" 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:ellipsize="marquee" 
           android:marqueeRepeatLimit="1" 
           android:focusable="true" 
           android:focusableInTouchMode="true" 
           android:gravity="center" 
           android:paddingBottom="5dp" 
           android:paddingTop="5dp" 
           android:scrollHorizontally="true" 
           android:singleLine="true" 
           android:text="@string/text1" 
           android:textColor="#000000" 
           android:textSize="30dp" /> 

          <TextView 
           android:id="@+id/text2" 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:ellipsize="marquee" 
           android:marqueeRepeatLimit="1" 
           android:focusable="true" 
           android:focusableInTouchMode="true" 
           android:gravity="center" 
           android:paddingBottom="5dp" 
           android:paddingTop="5dp" 
           android:scrollHorizontally="true" 
           android:singleLine="true" 
           android:text="@string/text2" 
           android:textColor="#000000" 
           android:textSize="30dp" /> 

Javaファイル

text1.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (mediaPlayer1 != null && mediaPlayer1.isPlaying()) { 
      text1.setClickable(false); 
     } 



     if (mediaPlayer1 == null) { 
      mediaPlayer1 = MediaPlayer.create(getActivity(), R.raw.audio1); 
     } 

     else { 
      text1.setClickable(true); 
      mediaPlayer1.start(); 
      play1.setVisibility(View.GONE); 
      pause1.setVisibility(View.VISIBLE); 
      repeatoff1.setVisibility(View.VISIBLE); 
      stop1.setVisibility(View.VISIBLE);} 
+0

2回クリックすると再生されるはずです。 – Shaishav

+0

時々2回クリックすると発生しますが、3回クリックするとほとんどが発生しますが、ワンクリックで完了する方法はありませんか? – Devansh

答えて

0

からの抽出物です、あなただけのMediaPlayerを初期化し、さらにそれを使用していません。次のコードを試してください:

text1.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (mediaPlayer1 != null && mediaPlayer1.isPlaying()) { 
      text1.setClickable(false); 

      // release the media player 
      mediaPlayer1.release; 
      mediaPlayer1 = null; 
     } 



     if (mediaPlayer1 == null) { 
      mediaPlayer1 = MediaPlayer.create(getActivity(), R.raw.audio1); 
     } 
     // no need of else 
      text1.setClickable(true); 
      mediaPlayer1.start(); 
      play1.setVisibility(View.GONE); 
      pause1.setVisibility(View.VISIBLE); 
      repeatoff1.setVisibility(View.VISIBLE); 
      stop1.setVisibility(View.VISIBLE); 
    } 
関連する問題