【问题标题】:Android mediaplayer MediaPlayer(658): error (1, -2147483648)Android 媒体播放器 MediaPlayer(658): 错误 (1, -2147483648)
【发布时间】:2015-03-07 00:47:16
【问题描述】:

在 Android 中播放流式音频时出现此错误:

MediaPlayer(658): 错误 (1, -2147483648)

mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(url);
mediaPlayer.prepareAsync();

【问题讨论】:

  • 我也遇到了这个错误。我还没有找到原因。就我而言,我有一项服务可以从 url 流式传输音乐。我可以从一项活动中运行服务就好了。但是,当我从另一个活动运行它时,它总是给我这个错误。相同的网址,相同的代码。快把我逼疯了!导致问题的活动是一个相当复杂的活动,我想知道它是否与内存有关。这个还在工作!

标签: android media-player


【解决方案1】:

我不知道如何播放流,但我在尝试播放设备上的文件时遇到了同样的错误。解决方案是 MediaPlayer 没有读取视频文件的正确权限。这篇文章极大地帮助了我。 http://www.weston-fl.com/blog/?p=2988

【讨论】:

  • 感谢您的链接!在过去的 2 个小时里,我一直在努力解决这个错误(1,-2147483648)。正如文章指出的那样,问题原来是我试图播放的视频文件的权限。我的 videoFile 位于 MediaPlayer 无法读取的 context.getCacheDir() 中。将我的文件更改为存储在 context.getExternalCacheDir() 中修复它!
【解决方案2】:

我在 Froyo & Gingerbread 上也遇到了同样的错误。在更高级别的 Android 中,相同的视频播放效果很好。最后经过大量研究,尝试将Https Url更改为Http Url & 答对了。它解决了我的问题。我使用的是亚马逊 S3 服务器,因此只需将 url 中的“https”替换为“http”就足够了。

  videoUrl= videoUrl.replaceFirst("https", "http"); 

PS:为了支持旧版本,如果您使用 H.264,请确保视频是 Baseline 编码的。

【讨论】:

  • 在装有 Android 4.X 的 Datawind 设备上遇到此问题。
【解决方案3】:

根据您提供的信息,无法准确判断问题所在。你使用 prepareAsync() 方法,你注册了 onPreparedListener 吗? prepareAsync 方法会立即返回,如果没有 onPreparedListener,您就没有准备好开始播放的信息。

另一种可能性是您的 URL 中的错误,或不受支持的流协议...

【讨论】:

    【解决方案4】:

    经过多次尝试/错误测试,对我来说,在“new Media(...)”上使用完整路径,如下所示:

    var mySound = new Media('file:///android_asset/www/sound/mysound.mp3');
    

    S.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 2015-09-18
      • 2013-09-20
      • 2022-10-13
      相关资源
      最近更新 更多