1

EVO やその他のデバイスで動作するウェブサイト用のラジオ アプリを持っていますが、ユーザーから、Samsung 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>

私が言ったように、前夜には動作しますが、Samsung Galaxy S では動作しません。私は Android 2.2 を使用しています。

4

1 に答える 1

0

Samsung Galaxy S がストリームを準備できず、おそらく mediaPlayer.prepareAsync() の代わりに mediaPlayer.prepare() を使用しているため、サービスはフリーズしています。

一部の 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<‡ÿò„

問題はこのヘッダーだと思います。他の URL (例: http://195.55.74.213/rtve/radio4.mp3?GKID=804c9f24cb4811e1af4600163ea2c743) を試してみると、このヘッダーは取得されず、Samsung Galaxy Tab やその他のデバイスで問題なく再現されます。

于 2012-07-11T13:31:11.597 に答える