我有按钮而不是调用方法播放流如下:
// 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;
}
}
答案 0 :(得分:0)
Button PlayBtn = (Button) findViewById(R.id.btnPlay);
PlayBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startradio(v);
}
});
答案 1 :(得分:0)
PlayBtn.setOnClickListener(new OnClickListener(){
public void onClick(View v){
//to do ur function
}
});
答案 2 :(得分:0)
您可以使用此代码:
Button PlayBtn = (Button)findViewById(R.id.btnPlay);
PlayBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
startradio(v);
}
});
我不确定您的View v
方法中为什么需要startradio
;你可以从方法声明和调用中删除它。
答案 3 :(得分:0)
1-使用onClickListener
实现您的活动(应该是查看非对话框)
2-
Button PlayBtn = (Button)findViewById(R.id.btnPlay);
playBtn.setOnClickListener(this);
3-
@override
public void onClick(View v)
{
try{
if(mp.isPlaying()){
return;
}
mp.start();
} catch(IllegalStateException ex){
ex.printStackTrace();
}
}
更新: -
把这个
mp = new MediaPlayer();
在onCreate().
内删除onResume()
//
public class MainActivity extends Activity implements OnClickListener{
public MediaPlayer mp;
boolean isPrepared = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp = new MediaPlayer();
Button PlayBtn = (Button)findViewById(R.id.btnPlay);
PlayBtn .setonClickListener(this);
}
@override
public void onClick(View v)
{
startradio(v);
}
public void onCompletion(MediaPlayer mediaPlayer) {
synchronized(this){
isPrepared = false;
}
}
protected void onResume (){
super.onResume();
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 :(得分: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;
}
}
为您的媒体播放器Pause
和Stop
创建一个按钮