首页 > 解决方案 > 如何在 Android.Media.Mediaplayer 中播放 webm?(错误(1,-2147483648))

问题描述

我想在我的 Xamarin Android 应用程序中流式传输 webm (opus) 音频,但我通过准备播放器不断收到 UNKNOWN_ERROR。我的代码如下所示:

    public class AndroidAudioPlayerHelper : AudioPlayerHelper {
        private readonly Media Player player;

        public AndroidAudioPlayerHelper() => player = new MediaPlayer();

        private void PlayNew() {
            player.Prepared += (sender, e) => {
                                   player.Start();
                               };
            player.PrepareAsync();
        }

        public override void PlayStream(string url) {
            player.SetDataSource(url);
            PlayNew();
        }


    }

我的网址看起来像http://localhost:9001/api/v1/song/stream/00000000000000000000000000000000。当我指向 mp3 文件或使用我的 UWP-App 时,一切正常。

我已经尝试设置 AudioAttributes 但它也不起作用。

标签: c#androidxamarinxamarin.android

解决方案


如果您使用的是较新版本的 Android,则您的资源必须是https资源,或者在清单中允许不安全的连接。

尝试在您的 AndroidManifest.xml 文件中添加:android:usesCleartextTraffic="true"到您的Application节点。

当您拥有正确配置的服务器时,最好对发布版本禁用此功能。


推荐阅读