Streaming Audio Android应用程序无法在Galaxy S4上运行

时间:2014-02-08 14:06:20

标签: android audio streaming galaxy

我已经创建了一个应用程序(无线电流媒体),但在S4上无效。 我在我的Galaxy Nexus,Xperia Arc,Htc Desire上测试了这个应用程序,它运行正常。 我认为我的代码中存在错误。

我的代码:

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();
        }

    }

1 个答案:

答案 0 :(得分:0)

您的流式网址(http://makrodigital.com:8134/radiolluvia)的 AAC 格式与内容类型 audio / aacp

但不直接支持audio / aacp流式传输。也许以前是另一个链接? MP3 还是其他什么?

要播放此网址,您可以使用此资料库: http://code.google.com/p/aacplayer-android/