首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MediaStreamSource的WP7广播

使用MediaStreamSource的WP7广播
EN

Stack Overflow用户
提问于 2010-12-01 07:45:28
回答 2查看 3K关注 0票数 6

我正在尝试通过MediaStreamSource向我的MediaElement实现Shoutcast流。这是一个包含一些基础知识的代码。使用ReadData方法,我可以下载原始音频数据(MP3示例),我的问题是如何将流设置为MediaStreamSource。这样它就不能工作了(它会编译,MediaFailed事件没有错误,但我听不到任何声音)。也许我应该在我的自定义ShoutcastMediaStreamSource中实现所有这些?固定流没有问题,只有非固定流有问题。有人能给我一些建议吗?

在WP7上,没有可能设置"useUnsafeHeaderParsing“,所以我无法获得带有shoutcast元数据的http报头-只有原始数据。在ShoutcastMediaStreamSource中,我实现了ManagedMediaHelpers的一些代码。

谢谢

代码语言:javascript
复制
    private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://radiozetmp3-02.eurozet.pl:8400/;"); 
        request.Method = "GET";
        request.Headers["Icy-MetaData"] = "1";
        request.UserAgent = "WinampMPEG/5.09";
        request.AllowReadStreamBuffering = false;

        request.BeginGetResponse(new AsyncCallback(RequestComplete), request);
        allDone.WaitOne();

        ShoutcastMediaStreamSource smss = new ShoutcastMediaStreamSource(stream);
        player.SetSource(smss); // MediaElement
        player.Play();
    }

    public void RequestComplete(IAsyncResult r)
    {
        HttpWebRequest request = (HttpWebRequest)r.AsyncState;
        HttpWebResponse response = request.EndGetResponse(r) as HttpWebResponse;
        stream = response.GetResponseStream();

        IAsyncResult res = stream.BeginRead(buffer, 0, buffer.Length, callback, null);

        allDone.Set();
    }

    public void ReadData(IAsyncResult r)
    {
        int bytes = stream.EndRead(r);

        if (bytes == 0) { Debug.WriteLine("No bytes readed"); }
        else
        {
            Debug.WriteLine("readed: " + buffer.Length.ToString());
            stream.BeginRead(buffer, 0, buffer.Length, callback, buffer);
        }
    }
EN

回答 2

Stack Overflow用户

发布于 2011-12-10 08:01:33

您需要开发自定义MediaStreamSource。

你可以在这里找到我为我的一个项目开发的原型:https://skydrive.live.com/redir.aspx?cid=eb0868f2135b874c&resid=EB0868F2135B874C!1037&parid=EB0868F2135B874C!169&authkey=!AGSYfCVvCasGArI

票数 2
EN

Stack Overflow用户

发布于 2013-12-04 01:26:47

在代码中尝试version =2。在更改一行代码后,它现在对我起作用了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4319882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档