流媒体MediaPlayer不适用于三星Galaxy S3

时间:2013-08-12 16:29:20

标签: android media-player android-mediaplayer samsung-mobile

Streaming MediaPlayer无法在Samsung galaxy s3上运行。我自己没有设备,但得到它的报告不起作用。还尝试了远程测试实验室,但无法正常工作。我已经在许多其他设备上进行了测试,所有工作除了s3之外。任何帮助都会很棒!

代码:

public class Radio extends Activity {

private MediaPlayer mp;
private ImageButton pauseicon;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.player_1);
    Toast.makeText(this, "Just one moment please", Toast.LENGTH_LONG).show();
    pauseicon = (ImageButton) findViewById(R.id.pauseicon);
    getActionBar().setDisplayHomeAsUpEnabled(true);

    /**
     * Play button click event plays a song and changes button to pause
     * image pauses a song and changes button to play image
     * */

    String res = "http://************";

    mp = new MediaPlayer();
    try {
        mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mp.setDataSource(res);
        mp.setOnPreparedListener(new OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer player) {
                mp.start();
            }
        });
        mp.prepareAsync();
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {

    }



    pauseicon.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            // No need to check if it is pauseicon

            if (mp.isPlaying()) {
                mp.pause();
                ((ImageButton) v).setImageResource(R.drawable.playicon);

            } else {
                mp.start();
                ((ImageButton) v).setImageResource(R.drawable.pauseicon);
            }
        }
    });

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);

        if (mp != null)
            if (mp.isPlaying())
                mp.stop();

        mp.release();

        return true;
    default:
        return super.onOptionsItemSelected(item);

    }
}

@Override
public void onBackPressed() {
    if (mp != null) {
        if (mp.isPlaying())
            mp.stop();

        mp.release();
    }

    // there is no reason to call super.finish(); here
    // call super.onBackPressed(); and it will finish that activity for you
    super.onBackPressed();

}

  }

2 个答案:

答案 0 :(得分:1)

这就是我要播放的流媒体音乐,只是在三星Galaxy SIII上进行了测试,它运行良好。这里的音频流是公立大学的无线电流。但这应该适用于其他在线流。只需确保在清单中启用互联网权限。

public class MainActivity extends Activity {

MediaPlayer mpMediaPlayer;

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


    try{
    mpMediaPlayer = new MediaPlayer();
    mpMediaPlayer.setDataSource("http://streams.tsc.usu.edu:8888");
    mpMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mpMediaPlayer.prepare();
    mpMediaPlayer.start();

    }catch(Exception e){
        e.printStackTrace();
    }

}

答案 1 :(得分:1)

这可能有点晚了,但是对于那些正在寻找这个答案的人来说,一个解决方案可能是实现MediaPlayer.OnPreparedListener。

public class MyActivity extends Activity implements MediaPlayer.OnPreparedListener
    MediaPlayer mpMediaPlayer;

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


        try{
            mpMediaPlayer = new MediaPlayer();
            mpMediaPlayer.setDataSource("audio url");
            mpMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            mpMediaPlayer.prepare();
            mpMediaPlayer.setOnPreparedListener(this);


        }catch(Exception e){
            e.printStackTrace();
            Log.e(TAG, "Error loading media");
        }
    }

@Override
    public void onPrepared(MediaPlayer mp) {
        mpMediaPlayer.start();
    }
相关问题