2017-01-13 17 views
-1

私は自分のコードを共有することから始めます。MediaPlayer - 離してボタンを押すと再生と停止

package com.example.onebuttonpressimage; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageButton; 
import android.media.MediaPlayer; 
import android.view.MotionEvent; // new import library for onclick listener 


public class MainActivity extends AppCompatActivity { 
    // declare the objects and variables 
    private ImageButton buttonJava; // creates the JAVA object that holds button attributes and methods 
    private MediaPlayer sound = null; // creates the JAVA object that holds the mediaplayer attributes and methods 
    //private boolean pressed=false; 

    // Creates the app window =================================================================================== 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     sound = MediaPlayer.create(this, R.raw.beep);    // ties the JAVA mediaplayer object to the sound file 
     buttonJava = (ImageButton) findViewById(R.id.buttonXML); // ties the JAVA button object to the XML object 


     buttonJava.setOnTouchListener(new View.OnTouchListener() { 

      @Override 
      public boolean onTouch(View view, MotionEvent event) { 
       if (event.getAction() == MotionEvent.ACTION_DOWN) { 
        buttonJava.setBackgroundResource(R.drawable.button_pressed); 
        sound.start(); 
        return true; 
       } else if (event.getAction() == MotionEvent.ACTION_UP) { 
        buttonJava.setBackgroundResource(R.drawable.button_not_pressed); 
       } 
      return false; 
      } 
     }); 



}} 

ここに私がしていることがあります。私はボタンを放すまで、これをサウンドにするようにしています。私はsound.stop()を使ってみましたが、それは一度しか動作しませんし、アプリケーションを再起動するまで機能しなくなりました。誰にもアイデアはありますか?私はそれをあまりにも多く追加することなくそれが必要なように振舞うようにしたい。私が必要とするものについて誰かがもっと明確にする必要があるなら、私に知らせてください。され、次の私のXMLレイアウトファイルは、: - 従うよう

MainActivity.javaまたonTouchListenerに設定ボタンの背景のボタンセレクターを代わりに使用し

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


public class MainActivity extends AppCompatActivity { 
    // declare the objects and variables 
    private ImageButton buttonJava; // creates the JAVA object that holds button attributes and methods 
    private MediaPlayer sound = null; // creates the JAVA object that holds the mediaplayer attributes and methods 
    //private boolean pressed=false; 

    // Creates the app window =================================================================================== 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     sound = MediaPlayer.create(this, R.raw.beep);    // ties the JAVA mediaplayer object to the sound file 
     sound.setLooping(true); 
     buttonJava = (ImageButton) findViewById(R.id.buttonXML); // ties the JAVA button object to the XML object 


     buttonJava.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View view, MotionEvent event) { 
       if (event.getAction() == MotionEvent.ACTION_DOWN) { 
        buttonJava.setPressed(true); 
        sound.start(); 

       } else if (event.getAction() == MotionEvent.ACTION_UP) { 
        buttonJava.setPressed(false); 
        sound.pause(); 
       } 
       return true; 
      } 
     }); 
    } 
} 

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.onebuttonpressedimage.MainActivity"> 

    <ImageButton 
     android:text="Button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="17dp" 
     android:id="@+id/buttonXML" 
     android:background="@drawable/blue" 
     android:layout_centerHorizontal="true" 
     android:onClick="onButtonClick" /> 

</RelativeLayout> 
+0

xmlの外観も挿入できますか? – Manisha

+0

今すぐ追加します – jweaver

+0

今追加されました – jweaver

答えて

-1

私はループ、seekToの一部とbuttonJavaのJavaコードにいくつかの変更後に、それを自分で行うことができた、とまで行かせたときに停止しますそれはより良く動作させる。

0

これはトリックを行う必要があります -

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.mid.test.helpttest.MainActivity"> 


    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:srcCompat="@drawable/button_selector" 
     android:id="@+id/buttonXML" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true"/> 
</RelativeLayout> 

描画可能/ button_selector.xml

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/button_not_pressed" android:state_enabled="false" /> 
    <item android:drawable="@drawable/button_pressed" android:state_enabled="true" android:state_pressed="true" /> 
    <item android:drawable="@drawable/button_not_pressed" android:state_enabled="true" android:state_focused="true" /> 
    <item android:drawable="@drawable/button_not_pressed" android:state_enabled="true" /> 
</selector> 
関連する問題