抱歉我的英语,但我来自巴西,我使用谷歌翻译。
好吧,我在这个应用程序中遇到了困难,我试图制作一个在线广播流媒体,在 2.2 版本中工作正常,但在 4.0 版本中不起作用。没有发生错误,只是不起作用。下面是我的代码。
我很感激任何帮助。
package com.radiomiriam;
import java.io.IOException;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
public class Main extends Activity {
public String url = "http://69.64.48.96:9880";
public MediaPlayer player = new MediaPlayer();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
play();
}
@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;
}
public void stop(){
Toast.makeText(getApplicationContext(), "Finalizando...", Toast.LENGTH_SHORT).show();
if(player.isPlaying()){
player.stop();
}
}
public void play(){
if(player.isPlaying()){
Toast.makeText(getApplicationContext(), "Já está em execução!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "Preparando...", Toast.LENGTH_SHORT).show();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setAudioStreamType(AudioManager.STREAM_NOTIFICATION);
try {
player.setDataSource(url);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
player.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
player.start();
}
}
public void onClick(View v) {
final int id = v.getId();
switch (id) {
case R.id.btnPlay:
play();
break;
case R.id.btnStop:
stop();
break;
}
}
}
您好,请原谅我的坚持,但我仍然没有找到解决我的问题的方法,也不知道如何解决,我再次请求您帮助解决这个问题。
该应用程序在版本 2.x 和 3.x 中运行,但不在版本 4.x 中运行。下面是该项目的下载链接,您可以查看并帮助我。
http://nsi.inf.br/RadioMiriam.rar http://nsi.inf.br/RadioMiriam.rar(已删除)
我下载了你的项目,它实际上返回错误代码:
E/MediaPlayer(1976):错误(-38,0)
这是由于在准备好之前启动媒体播放器而导致的。
我做了一些改变,它就开始起作用了。你应该 :
-
在 MediaPlayer 上设置 onPrepared 侦听器(即在 onCreate 中)
player.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
从 play() 方法中删除player.start()
-
以这种方式设置数据源(在您的 play() 方法中)
player.setDataSource(this, Uri.parse("http://69.64.48.96:9880/"));
它适用于我的 Android 4.0.3 的 HTC Sensation
如果您需要任何帮助,请告诉我。
编辑:我忘了,我也删除了
player.setAudioStreamType(AudioManager.STREAM_NOTIFICATION);
这是多余的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)