0

我在使用 Android 中的 MediaPlayer 对象时遇到了一些问题。具体来说,我正在尝试从 url 播放 m4a 文件。从表面上看,它似乎工作正常,包括正确播放音频文件。然而,在我的 logcat 中,我得到了源源不断的运行时异常。具体来说:“BroadcastReceiver 试图在无序广播期间返回结果”

我对此感到困惑,因为我从未在我的代码中的任何地方设置广播接收器。我的完整源代码如下:

public class homeActivity extends Activity {
    private MediaPlayer player;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        player = new MediaPlayer();
        try {
            player.setDataSource("http://www.promoshuffle.com/fantrailTest/sample.m4a");
            player.prepare();
        } catch (IllegalArgumentException 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();
        }
        player.start();
    }
}

作为参考,我正在摩托罗拉 Atrix 上进行调试,正如我上面所说,音频实际上可以正常播放。如果有人对可能导致此异常的原因有任何想法,我将不胜感激!提前致谢。

阿凡达

4

1 回答 1

0

如果错误不是源于您的代码,那么也许您无需担心。

话虽如此,请尝试使用 prepareAysnc() 而不是 prepare()。

您需要实现 MediaPlayer.OnPreparedListener 并在 onPrepared() 方法中调用 player.start()。

于 2011-04-07T20:42:09.307 回答