SoundCloud Stream_url在树莓派上不起作用

本文关键字:不起作用 Stream url SoundCloud | 更新日期: 2023-09-27 18:14:18

我一直在另一个论坛上讨论这个话题,没有人能帮上忙,让我们看看这里有没有人能帮上忙。

我有一个问题,你从Soundcloud Api获得的URI播放歌曲。在我的桌面停止这个命令:

mediaelement.Source = new Uri("https://api.soundcloud.com/tracks/218090824/stream?client_id=YOUR_CLIENT_ID");
mediaelement.Play();

可以正常工作,但在PI上就不行,不知道为什么。

我现在有一个解决方案,看起来像这样:

            Uri turi = new Uri("https://api.soundcloud.com/tracks/218090824/stream?client_id=YOUR_CLIENT_ID");
            IRandomAccessStreamReference rsr = RandomAccessStreamReference.CreateFromUri(turi);
            PBar.Visibility = Windows.UI.Xaml.Visibility.Visible;
            StorageFile file1 = await StorageFile.CreateStreamedFileFromUriAsync("test mp3", turi, rsr);
            IRandomAccessStream stream = await file1.OpenReadAsync();
            PBar.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            mediaElement.PosterSource = img;
            mediaElement.SetSource(stream, "audio/mp3");
            mediaElement.Play();

这里的问题是文件在播放之前被下载,如果歌曲文件是10 mb,这不是问题,但对于mixtapes>100 mb,这需要很长时间。那么,是否有可能从URI中获得一个可以在下载时播放的IRandomAccessStream ?

这个解决方案:

 HttpClient httpClient = new HttpClient();
        HttpResponseMessage response = await httpClient.GetAsync("https://api.soundcloud.com/tracks/218090824/stream?client_id=YOUR_CLIENT_ID", HttpCompletionOption.ResponseHeadersRead);
        HttpResponseMessage rs = await httpClient.GetAsync(response.RequestMessage.RequestUri, HttpCompletionOption.ResponseHeadersRead);
        Stream stream = await rs.Content.ReadAsStreamAsync();
        IRandomAccessStream content = stream.AsRandomAccessStream();
        mediaElement.SetSource(content, "audio/mpeg");

不工作,因为我得到一个错误,当我想转换流到IRandomAccessStream说:"不能使用指定的流作为Windows运行时IRandomAccessStream,因为这个流不支持搜索。"

SoundCloud Stream_url在树莓派上不起作用

问题已通过最新的Windows IOT更新解决。