Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android上媒体播放器和异步播放aacp/shoutcast流存在奇怪的问题_Java_Android_Aac - Fatal编程技术网

Java android上媒体播放器和异步播放aacp/shoutcast流存在奇怪的问题

Java android上媒体播放器和异步播放aacp/shoutcast流存在奇怪的问题,java,android,aac,Java,Android,Aac,我正在尝试为一家广播电台制作一个定制播放器,他们希望从mpeg移动到aac,以降低大部分移动用户的比特率。然而,当我开始项目时,我正在对mpeg流进行测试,当我将其更改为新的aac流时,我的播放器似乎锁定了一段时间,然后,当玩家试图在后台加载流时,android会杀死UI线程。我确实收到了一些关于它无法播放的初始错误,但是在应用程序被杀死30秒后,我得到了一个孤立的异步播放器,它的粘性通知在后台重新生成,流开始播放 logcat输出在崩溃时显示这些行 I/dalvikvm﹕ threadid=3

我正在尝试为一家广播电台制作一个定制播放器,他们希望从mpeg移动到aac,以降低大部分移动用户的比特率。然而,当我开始项目时,我正在对mpeg流进行测试,当我将其更改为新的aac流时,我的播放器似乎锁定了一段时间,然后,当玩家试图在后台加载流时,android会杀死UI线程。我确实收到了一些关于它无法播放的初始错误,但是在应用程序被杀死30秒后,我得到了一个孤立的异步播放器,它的粘性通知在后台重新生成,流开始播放

logcat输出在崩溃时显示这些行 I/dalvikvm﹕ threadid=3:对信号作出反应 I/dalvikvm﹕ 将堆栈跟踪写入“/data/anr/traces.txt”A/libc﹕ 0x000008eb代码=0处的致命信号6 SIGABRT,线程32258

我看到孤立异步任务的粘性,当我单击它以重新获得音频焦点时,它正在播放音频,但主应用程序/用户界面线程显然已完全重置

生成异步任务的代码如下所示:

private class PlayAsync extends AsyncTask<String, Void, Boolean> {
   private String url_to_play = "";

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        textView_info.setText("Buffering...");

    }

    @Override
    protected Boolean doInBackground(String... params) {

        url_to_play = params[0];
        Bundle b = new Bundle();
        b.putString("url", url_to_play);
        Intent i = new Intent(MainActivity.this, MusicService.class);
        i.putExtras(b);

        try {
            stopService(new Intent(MainActivity.this, MusicService.class));
        } catch (Exception ex) {
            //
        }
        startService(i);
        return true;
    }

    @Override
    protected void onPostExecute(Boolean result) {
        isMuted = isMuted();
        if (isMuted) {
            textView_info.setText("Playing Muted!");
        } else
            textView_info.setText("Playing");
        isBuffering = false;
    }

    @Override
    protected void onProgressUpdate(Void... values) {

    }

    protected void onError(MusicService mp, int what, int extra) {
        // The MediaPlayer has moved to the Error state, must be reset!
        button_stop.performClick();
    }
}