【问题标题】:Android Mediaplayer not playing livestreaming properlyAndroid Mediaplayer 无法正常播放直播
【发布时间】:2019-04-29 00:30:38
【问题描述】:

我正在尝试在收到通知时通过我的应用中的媒体播放器播放直播 .ogg 音频。我的设备有奥利奥。问题是,当我收到通知时,在尝试播放音频时,我收到以下异常:

D/MediaPlayer: setDataSource IOException | SecurityException happend : 
java.io.FileNotFoundException: No content provider: http://10.15.17.27:8000/40bccd94-9388-4e62-f2e4-08d65393ff81
    at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1402)
    at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1253)
    at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1176)
    at android.media.MediaPlayer.attemptDataSource(MediaPlayer.java:1163)
    at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1135)
    at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1080)
    at android.media.MediaPlayer.create(MediaPlayer.java:972)
    at android.media.MediaPlayer.create(MediaPlayer.java:949)
    at android.media.MediaPlayer.create(MediaPlayer.java:928)

直播结束后,mediaplayer 开始播放完成的直播。请在下面找到我的代码:

  try {
            //  MediaPlayer player = MediaPlayer.create(this, Uri.parse(remoteMessage.getData().get("body")));
            MediaPlayer player = MediaPlayer.create(this, Uri.parse("http://10.15.17.27:8000/" + str_channel));
            player.setAudioStreamType(AudioManager.STREAM_MUSIC);
            player.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
            player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    mp.start();
                }
            });
        } catch (Exception e) {
            Log.e("mediaplayerexc", e.getMessage());
        }

【问题讨论】:

标签: android android-mediaplayer android-8.0-oreo


【解决方案1】:

您不能使用纯文本HTTP,除非提供network security configuration,它会覆盖默认的网络安全配置,即cleartextTrafficPermitted="false"。例如(只有base-config 才适用,除非有可用的本地 DNS)。当您的 DSL 路由器提供域时,您可以使用 domain-config 并更具体地说明:

<?xml version="1.0" encoding="utf-8"?>
<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
    </trust-anchors>
</base-config>

这个question 也似乎是相关的 - 虽然 Android Pie 仍然需要安全配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多