2014-02-08 1 views
0

앱 (라디오 스트리밍)을 만들었지 만 S4에서는 작동하지 않습니다. Galaxy Nexus, Xperia Arc, Htc Desire에서이 앱을 테스트했으며 정상적으로 작동합니다. 내 코드에 오류가 있다고 생각합니다.스트리밍 오디오 Android 앱이 Galaxy S4에서 작동하지 않습니다.

내 코드 : 오디오/AACP :

package com.dieesoft.radiolluvia; 

import java.io.IOException; 

import android.R.array; 
import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.media.MediaPlayer.OnCompletionListener; 
import android.media.MediaPlayer.OnPreparedListener; 
import android.media.MediaPlayer.TrackInfo; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.app.Activity; 
import android.app.ProgressDialog; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.ImageButton; 
import android.widget.ProgressBar; 
import android.widget.Toast; 

public class MainActivity extends Activity implements OnClickListener { 

private MediaPlayer mp; 
private ProgressDialog pb; 
private Button bplay; 
private Button bstop; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    bplay = (Button) findViewById(R.id.button1); 
    bstop = (Button) findViewById(R.id.button2); 
    mp = new MediaPlayer(); 
    mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    bplay.setOnClickListener(this); 
    bstop.setOnClickListener(this); 

} 

@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; 
} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    if(v.getId() == R.id.button1) 
    { 
     //button play 
     new iniciarStreaming().execute(); 
     Toast.makeText(this, "Play", Toast.LENGTH_SHORT).show(); 

    } 
    else if(v.getId() == R.id.button2) 
    { 
     //button stop 
     Toast.makeText(this, "Stop", Toast.LENGTH_SHORT).show(); 
     mp.stop(); 

    } 
} 

private class iniciarStreaming extends AsyncTask<Void, Void, Boolean> implements  OnPreparedListener 
{ 

    @Override 
    protected Boolean doInBackground(Void... params) { 
     // TODO Auto-generated method stub 
     try { 
      mp.setDataSource("http://makrodigital.com:8134/radiolluvia"); 
     } 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.prepareAsync(); 
     mp.setOnPreparedListener(this); 


     return null; 

    } 
    protected void onPreExecute() { 
     // TODO Auto-generated method stub 
     pb = new ProgressDialog(MainActivity.this); 
     pb.setMessage("Buffering..."); 
     pb.show(); 
    } 
    @Override 
    public void onPrepared(MediaPlayer mp) { 
     // TODO Auto-generated method stub 
     if (pb.isShowing()) { 
       pb.cancel(); 
      } 
     mp.start(); 
     } 

    } 
+0

가 _ "작동하지 않습니다"_ 아무것도 막 의미 할 수있다 :이 라이브러리를 사용하여이 URL을 연주합니다

. 문제를 설명 할 때 좀 더 자세하게 설명하십시오. – Michael

+0

나는 AsynTask를 사용했고 doInBackground()에서 mp.setDataSource(), mp.PrepareAsync() 및 mp.setOnPreparedListener()를 만들었습니다. 그리고 onPreExecute()에서 ProgressDialog를 만들었습니다. 내 GS4에서 앱이 ProgressDialog에서 무한 루프로 반복되어 멈추지 않습니다. 다른 장치에서는 응용 프로그램이 제대로 작동합니다. – user3287267

답변

관련 문제