1

我的网站有一个广播应用程序,在我的 EVO 和其他运行良好的设备上运行,但用户告诉我,在他的三星 Galaxy S 中,它冻结了应用程序(他给我发了一段视频,我可以看到媒体播放器服务接到电话并开始,但没有声音出来,应用程序冻结没有崩溃屏幕发送报告或没有它只是冻结),我没有 Galaxy 进行测试,那我该怎么办?有没有其他人有类似的问题?我尝试在这里粘贴我的代码,但有人决定在没有任何建议的情况下结束我的问题。我的应用程序所做的只是从主要活动中调用媒体播放器的按钮添加我的 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

4

1 回答 1

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您不会获得此标头,并且它在三星 Galaxy Tab 和其他设备中重现良好。

于 2012-07-11T13:31:11.597 回答