我有一个广播应用程序,我的网站在我的EVO和其他设备工作很好,但用户告诉我,在他的三星Galaxy S它冻结了应用程序(他发送给我一个女巫的视频,我可以看到,媒体播放器服务获得通话和启动,但没有声音出来,应用程序冻结没有崩溃屏幕发送报告或没有它只是冻结),我没有银河测试,所以我该怎么办?有没有其他人有类似的问题?我尝试在这里粘贴我的代码,但有人决定不提出任何建议来结束我的问题。 我的所有应用程序都是来自主要活动按钮调用媒体播放器添加我的mp3流的URL并启动付款人。
Button canal1 = (Button) findViewById(R.id.bcanal1);
canal1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
mUrl = "http://67.212.165.106:8161";
textRadioName.setText("you are listening to VARIADO!");
Intent i = new Intent (ChevereMovilActivity.this, PlayerService.class);
startService(i);
PlayerService.setSong(mUrl, "Temp Song", null);
start();
}});
启动方法
@Override
public void start() {
if (PlayerService.getInstance() != null) {
PlayerService.getInstance().startMusic();
}
}
清单中的
<service android:name=".PlayerService"
android:label="@string/app_name">
<intent-filter>
</intent-filter>
</service>
像我说的那样在我的前夕工作但不是三星Galaxy S.
我正在使用Android 2.2
答案 0 :(得分:0)
该服务被冻结,因为三星Galaxy S无法准备流,您可能正在使用mediaPlayer.prepare()而不是mediaPlayer.prepareAsync()。
我认为这在一些Galaxy设备中是无证的“怪癖”。问题是流格式。如果你在控制台中写道:
wget -S -O stream http://67.212.165.106:8161
和他们:
head -n 12 stream
你可以看到类似的东西:
ICY 200 OK
icy-notice1:<BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>
icy-notice2:SHOUTcast Distributed Network Audio Server/Linux v1.9.8<BR>
icy-name:My Station name
icy-genre:Various
icy-url:http://www.radiokolergan.com
content-type:audio/mpeg
icy-pub:1
icy-br:64
qOCéúÐX43‘¤]ÝáÅQ(;Œ6½v<‡ÿò„
我认为问题是这个标题。如果您尝试使用其他网址(例如:http://195.55.74.213/rtve/radio4.mp3?GKID=804c9f24cb4811e1af4600163ea2c743
),则您无法获得此标头,并且可以在Samsung Galaxy Tab和其他设备中重现。