0

次のように、メソッドの再生ストリームを呼び出すよりもボタンがあります。

// method for play stream after stop it.
    public void startradio(View v) {
        try{
            if(mp.isPlaying()){
                return;
            }
               mp.start();
        } catch(IllegalStateException ex){
            ex.printStackTrace();
        } 
    }

ボタンを次のように定義します。

Button PlayBtn = (Button)findViewById(R.id.btnPlay);

今、PlayBtn私はこの方法を使用してその機能を開始したいをクリックしたときにしたい:

setOnClickListener

編集:

このような私のすべてのコード:

package com.example.kam;

import java.io.IOException;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;

import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;


public class MainActivity extends Activity {
    public MediaPlayer mp;
    boolean isPrepared = false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    public void onCompletion(MediaPlayer mediaPlayer) {
        synchronized(this){
            isPrepared = false;
        }
    }

    protected void onResume (){
        super.onResume();

        mp = new MediaPlayer();
        try {
            mp.setDataSource("http://radio.arabhosters.com:8015/");
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
        try {
            mp.prepare();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } //also consider mp.prepareAsync().
        // defult start stream when start App.
        mp.start();
    }

    // method for play stream after stop it.
        public void startradio(View v) {
            try{
                if(mp.isPlaying()){
                    return;
                }
                   mp.start();
            } catch(IllegalStateException ex){
                ex.printStackTrace();
            } 
        }

    // method for pause stream. 
    public void pauseradio(View v) {
        mp.pause();
    }

    public boolean isPlaying() {
        return mp.isPlaying();
    }

    public boolean isLooping() {
        return mp.isLooping();
    }

    public void setLooping(boolean isLooping) {
        mp.setLooping(isLooping);
    }

    public void setVolume(float volumeLeft, float volumeRight) {
        mp.setVolume(volumeLeft, volumeRight);
    }

    // method for stop stream.
    public void stopradio(View v) {
        if(mp.isPlaying()){
            mp.stop();
        }
        mp.release();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);

        return true;
    }

}
4

5 に答える 5

0
Button PlayBtn = (Button) findViewById(R.id.btnPlay);
PlayBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startradio(v);
    }
});
于 2013-04-26T08:45:34.477 に答える
0
PlayBtn.setOnClickListener(new OnClickListener(){
public void onClick(View v){
//to do ur function
}
});
于 2013-04-26T08:45:52.997 に答える
0

次のコードを使用できます。

Button PlayBtn = (Button)findViewById(R.id.btnPlay);
PlayBtn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        startradio(v);
    }
});

メソッドView vで必要な理由がわかりません。startradioメソッド宣言と呼び出しから削除できます。

于 2013-04-26T08:46:09.573 に答える
0
public class MainActivity extends Activity implements OnClickListener{
    public MediaPlayer mp;
    boolean isPrepared = false;
    Button PlayBtn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        PlayBtn = (Button)findViewById(R.id.btnPlay);
        PlayBtn.setOnClickListener(this);
        mp = new MediaPlayer();
      try {
            mp.setDataSource("http://radio.arabhosters.com:8015/");
            mp.prepare();
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
    }
    @Override
    public void onClick(View v){
     if(v == PlayBtn){
         start();
      }
     else if(v == PauseBtn){
          pause();
      }
     else if(v == StopBtn){
          stop();
      }
    }
    public void onCompletion(MediaPlayer mediaPlayer) {
        synchronized(this){
            isPrepared = false;
        }
    }



    // method for play stream after stop it.
        public void start() {
            try{
                if(mp.isPlaying()){
                    return;
                }
                   mp.start();
            } catch(IllegalStateException ex){
                ex.printStackTrace();
            } 
        }

    // method for pause stream. 
    public void pause() {
        mp.pause();
    }

    public boolean isPlaying() {
        return mp.isPlaying();
    }

    public boolean isLooping() {
        return mp.isLooping();
    }

    public void setLooping(boolean isLooping) {
        mp.setLooping(isLooping);
    }

    public void setVolume(float volumeLeft, float volumeRight) {
        mp.setVolume(volumeLeft, volumeRight);
    }

    // method for stop stream.
    public void stop() {
        if(mp.isPlaying()){
            mp.stop();
        }
        mp.release();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);

        return true;
    }

}

ボタンPauseStopメディア プレーヤーを作成します。

于 2013-04-26T09:14:54.393 に答える