【问题标题】:How to use Async task for audio streaming in android如何在android中使用异步任务进行音频流
【发布时间】:2011-12-06 09:53:17
【问题描述】:

我们可以通过android中的异步任务流式传输音频文件吗?如果你做过,给我一个例子。

【问题讨论】:

    标签: android android-asynctask http-live-streaming


    【解决方案1】:

    好吧,我自己已经为此苦苦挣扎了一段时间,因为每个人总是告诉我“只需使用 prepareAsync() 就可以了。

    但是,在尝试start() 之前,您仍然需要等到足够的缓冲,否则您会收到错误并且不会发生任何事情。

    首先,让你的音乐流媒体类实现OnPreparedListener。这将用于在开始播放之前检查是否有足够的缓冲。

    接下来,使用这段代码启动缓冲并设置监听器:

    mediaPlayer.setDataSource(URL here);
    mediaPlayer.prepareAsync();
    mediaPlayer.setOnPreparedListener(this);
    

    你现在已经设置你的监听器来检查是否有足够的缓冲。只差一步了

    public void onPrepared(MediaPlayer mediaplayer) {
        // We now have buffered enough to be able to play
        mediaPlayer.start();
    }
    

    这首歌现在可以开始播放而不会出现错误等等。

    祝你好运!


    至于您想要播放音乐并能够随时停止,如果您打算在所有活动中停止音乐,则需要使用Service。网上有一些关于这方面的教程。

    【讨论】:

      【解决方案2】:

      您可以使用 mediaPlayer 对象。

      mediaPlayer.setDataSource("Your datasource");
      mediaPlayer.prepareAsync();
      

      方法prepareAsyc:异步准备播放器进行播放。

      欲了解更多信息,请参阅:http://developer.android.com/reference/android/media/MediaPlayer.html

      希望这会有所帮助...

      【讨论】:

      • @orioplons ...我通过使用普通播放、暂停和停止按钮来做到这一点...效果很好,但现在我正在尝试异步任务,我需要在后台播放音乐并且可以随时停止...
      • 可能你必须重写你的活动方法(如暂停、继续、停止)以防止音乐停止。
      猜你喜欢
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-14
      相关资源
      最近更新 更多