Ошибка MediaPlayer: тип потока байтов данного URL не поддерживается. (Исключение из HRESULT: 0xC00D36C4)

Я новичок в UWP. Я записываю голосовой ввод (с MediaCapture) а потом я пытаюсь воспроизвести его.

И я получаю следующую ошибку

The byte stream type of the given URL is unsupported. (Exception from HRESULT: 0xC00D36C4)

Я создаю MP3-файл, который можно воспроизвести двойным щелчком мыши на плеере. Итак, файл в порядке.

Когда я пытаюсь воспроизвести его с MediaPlayer, я получаю эту ошибку. Я попытался установить новый пакет кодеков и указал.mp3 на него. Та же ошибка Я пробовал потоки, StorageFile и методы URL для определения входного файла, но всегда с той же ошибкой. У меня есть микрофон и веб-камера включена. (мой микрофон находится в веб-камере) Я использую "Локальный компьютер". Кто-нибудь знает возможную причину? Вот код Мне было бы интересно посмотреть, работает ли он на другом ПК.

    private async void RecordAndPlay()
    {
        string mediaFilename = "audioPRC.mp3";
        StorageFile mediaFile;
        StorageFolder tempFolder;
        MediaCapture mediaCapture;
        MediaPlayer mediaPlayer = null;
        LowLagMediaRecording lowLagMediaRecording;
        MediaSource mediaSource;
        mediaCapture = new MediaCapture();
        await mediaCapture.InitializeAsync();
        mediaCapture.Failed += OnMediaCaptureFailed;
        tempFolder = Windows.Storage.ApplicationData.Current.TemporaryFolder;
        mediaFile = await tempFolder.CreateFileAsync(mediaFilename, CreationCollisionOption.ReplaceExisting);
        MediaEncodingProfile mediaEncodingProfile = MediaEncodingProfile.CreateMp3(AudioEncodingQuality.Medium);
        lowLagMediaRecording = await mediaCapture.PrepareLowLagRecordToStorageFileAsync(
                mediaEncodingProfile, mediaFile);
        await lowLagMediaRecording.StartAsync();
        // Talk into your microphone during the 10 second wait...
        await Task.Delay(10000);
        await lowLagMediaRecording.StopAsync();
        await lowLagMediaRecording.FinishAsync();
        lowLagMediaRecording = null;
        mediaPlayer = new MediaPlayer { AutoPlay = false, AudioCategory = MediaPlayerAudioCategory.Media };
        mediaPlayer.MediaFailed += OnMediaPlayerFailed;
        mediaPlayer.AudioCategory = Windows.Media.Playback.MediaPlayerAudioCategory.Media;
        mediaSource = MediaSource.CreateFromStorageFile(mediaFile);
        var mediaPlaybackItem = new MediaPlaybackItem(mediaSource);
        mediaPlayer.Source = mediaPlaybackItem;
        mediaPlayer.Play();
    }
    private void OnMediaPlayerFailed(object sender, MediaPlayerFailedEventArgs e)
    { Debug.WriteLine(e.ExtendedErrorCode.Message); }
    private void OnMediaCaptureFailed(MediaCapture sender, MediaCaptureFailedEventArgs e)
    { Debug.WriteLine("Capture failed: " + e.Message); }

1 ответ

Я изменил кодировку в файл WAV, и все это работало. Это действительно не ответило на вопрос, почему mp3 терпит неудачу. Две строки кода были изменены:

        string mediaFilename = "audioPRC.wav";
        MediaEncodingProfile mediaEncodingProfile = MediaEncodingProfile.CreateWav(AudioEncodingQuality.Auto);
Другие вопросы по тегам