我正在使用Android的MediaPlayer在我的应用程序中设置URL流。我已经尝试了几个不同的帖子来处理退出代码和错误:(1,-2147483648)的数据。
我已经尝试了几种不同的流,但我似乎不能让MediaPlayer工作。我曾想过移动谷歌的ExoPlayer,但它有点复杂,我不想跳槽,以防我错过了什么。
媒体播放器:
private MediaPlayer player;
String url = "http://199.180.75.118:80/stream"; //temp stream
private void initializeMediaPlayer() {
player = new MediaPlayer();
player.setAudioAttributes( new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_MEDIA)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build());
try {
player.setDataSource(url);
player.prepareAsync();
player.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
我还包含了android权限:
<uses-permission android:name="android.permission.INTERNET" />
我尝试使用原始流类型(但它抛出了一个过时的警告):
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
所以我使用了.setAudioAttributes(...)
,我试图只运行prepare()
而不是prepareAsync()
,这给出了问题的标题,但我仍然会导致同样的错误。我已经查看了实际的错误定义,也没有运气(Android MediaPlayer error (1, -2147483648))。我不认为这是一个源问题,因为我已经尝试了多个其他流。请让我知道,如果我跳过了一些关键的,可能是导致我的错误。
编辑如果有帮助的话,我一直在调查我的调用,我发现MediaPlayer从来没有调用onPrepared(...)
。我检查了我测试的所有媒体的内容类型,它们都是音频/MPEG头。所以我不明白为什么MediaPlay没有访问onPrepared。
6条答案
按热度按时间aoyhnmkz1#
onPrepared呼叫(秒)。
在android 9中,请检查
https://developer.android.com/training/articles/security-config
AndroidManifest.xml添加网络安全配置属性
在src/res/xml中添加网络安全配置. xml文件
euoag5mw2#
使用此代码尝试使用
real device Vivo V7+ Android 8.1.0
测试请确保您在清单文件中定义了权限
一个月一个月
参考:https://developer.android.com/training/articles/security-config
网络安全配置
通过网络安全配置功能,应用可以在安全的声明性配置文件中自定义其网络安全设置,而无需修改应用代码。可以为特定域和特定应用配置这些设置。此功能的主要功能如下:
添加网络安全配置文件
网络安全配置功能使用一个XML文件,您可以在其中指定应用的设置。您必须在应用的清单中包含一个条目以指向此文件。以下代码摘录自清单,演示如何创建此条目:
network_security_config.xml
3xiyfsfu3#
我的raw文件夹中有一个本地音乐文件,这个错误在特定设备上不断发生。原来问题出在文件格式上。将其从
.m4a
更改为.mp3
,问题就解决了。我猜这是与设备支持的编解码器相关的设备特定问题。
6rqinv9w4#
在我的情况下,我用这个代码解决了这个错误,因为我在华为模型中收到错误。
sxissh065#
我的问题可能与您的问题有不同的原因,但由于我来到这里时出现了相同的错误消息,下面是我如何修复它:
在我的情况下,我试图阅读一个视频,我已经创建了我的电脑上与opencv和复制到手机。
我将其编码为
MJPG
的错误,而我应该使用H264
.This answer,这为我指明了解决方案。webghufk6#
我解决了这个问题,通过改变我的文件到另一个名称,我的音频文件的初始文件名是“john:doe.wav”,Mediaplayer不能播放一个文件与这个“:“特殊字符和许多其他字符,所以改变文件名为“johndoe.wav”解决了这个问题。