在Android-16中播放时直播音频延迟?

时间:2013-04-22 11:59:18

标签: android media-player android-mediaplayer rtsp

我正在开发一个小型的Android应用程序,我正在使用Android媒体播放器播放rtsp链接。它正在少于android 16 api正常工作。但问题是当我在Android 16上运行时需要花费大量时间才能玩,有时甚至不玩。下面是我正在使用的代码

sdrPlayer = new MediaPlayer();
sdrPlayer.setDataSource(url);
sdrPlayer.prepare();
sdrPlayer.setOnCompletionListener(video.this);
sdrPlayer.setOnPreparedListener(video.this);
sdrPlayer.setOnBufferingUpdateListener(video.this);
sdrPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

以下是一些测试用例

  1. 中兴N860 - 大约需要4到5分钟才能开始播放电台。
  2. 三星Galaxy S4 - 音频完全不起作用。它调用start方法 在onprepare方法中,但没有音频。
  3. 三星SCH1415 - 大约需要8分钟才能开始播放电台
  4. HTC V5 - 音频始终无法正常工作。它开始播放但是 没有音频。行为是不一致的,这是造成的 更加沮丧。

1 个答案:

答案 0 :(得分:3)

播放rtsp链接时,您应使用sdrPlayer.prepareAsync();代替

sdrPlayer.prepare();

因为文档说

它准备播放器以异步方式播放。设置数据源和显示表面后,您需要调用prepare()prepareAsync()对于流,您应该调用prepareAsync() ,它会立即返回,而不是阻塞,直到缓冲了足够的数据。