URLを列挙するだけの簡単なプレイリストを作成するクラスです
Inheritance: IPlayList
Esempio n. 1
0
        /// <summary>
        /// ストリームにプレイリストを出力します
        /// </summary>
        protected void WritePlayList()
        {
            bool mms =
                Channel.ChannelInfo.ContentType == "WMV" ||
                Channel.ChannelInfo.ContentType == "WMA" ||
                Channel.ChannelInfo.ContentType == "ASX";
            IPlayList pls;

            if (mms)
            {
                pls = new ASXPlayList();
            }
            else
            {
                pls = new M3UPlayList();
            }
            pls.Channels.Add(Channel);
            var baseuri = new Uri(
                new Uri(request.Uri.GetComponents(UriComponents.SchemeAndServer | UriComponents.UserInfo, UriFormat.UriEscaped)),
                "stream/");

            Send(pls.CreatePlayList(baseuri));
        }
 /// <summary>
 /// ストリームにプレイリストを出力します
 /// </summary>
 protected void WritePlayList()
 {
     bool mms =
     Channel.ChannelInfo.ContentType=="WMV" ||
     Channel.ChannelInfo.ContentType=="WMA" ||
     Channel.ChannelInfo.ContentType=="ASX";
       IPlayList pls;
       if (mms) {
     pls = new ASXPlayList();
       }
       else {
     pls = new M3UPlayList();
       }
       pls.Channels.Add(Channel);
       var baseuri = new Uri(
     new Uri(request.Uri.GetComponents(UriComponents.SchemeAndServer | UriComponents.UserInfo, UriFormat.UriEscaped)),
     "stream/");
       Send(pls.CreatePlayList(baseuri));
 }
 /// <summary>
 /// HTTPのレスポンスヘッダを作成して取得します
 /// </summary>
 /// <returns>
 /// コンテント毎のHTTPレスポンスヘッダ
 /// </returns>
 protected string CreateResponseHeader()
 {
     if (Channel==null) {
     return "HTTP/1.0 404 NotFound\r\n";
       }
       switch (GetBodyType()) {
       case BodyType.None:
     return "HTTP/1.0 404 NotFound\r\n";
       case BodyType.Content:
     {
       bool mms =
     Channel.ChannelInfo.ContentType=="WMV" ||
     Channel.ChannelInfo.ContentType=="WMA" ||
     Channel.ChannelInfo.ContentType=="ASX";
       if (mms) {
     return
       "HTTP/1.0 200 OK\r\n"                         +
       "Server: Rex/9.0.2980\r\n"                    +
       "Cache-Control: no-cache\r\n"                 +
       "Pragma: no-cache\r\n"                        +
       "Pragma: features=\"broadcast,playlist\"\r\n" +
       "Content-Type: application/x-mms-framed\r\n";
       }
       else {
     return
       "HTTP/1.0 200 OK\r\n"        +
       "Content-Type: "             +
       Channel.ChannelInfo.MIMEType +
       "\r\n";
       }
     }
       case BodyType.Playlist:
     {
       bool mms =
     Channel.ChannelInfo.ContentType=="WMV" ||
     Channel.ChannelInfo.ContentType=="WMA" ||
     Channel.ChannelInfo.ContentType=="ASX";
       IPlayList pls;
       if (mms) {
     pls = new ASXPlayList();
       }
       else {
     pls = new M3UPlayList();
       }
       pls.Channels.Add(Channel);
       return String.Format(
     "HTTP/1.0 200 OK\r\n"             +
     "Server: {0}\r\n"                 +
     "Cache-Control: private\r\n"      +
     "Content-Disposition: inline\r\n" +
     "Connection: close\r\n"           +
     "Content-Type: {1}\r\n",
     PeerCast.AgentName,
     pls.MIMEType);
     }
       default:
     return "HTTP/1.0 404 NotFound\r\n";
       }
 }
Esempio n. 4
0
        /// <summary>
        /// HTTPのレスポンスヘッダを作成して取得します
        /// </summary>
        /// <returns>
        /// コンテント毎のHTTPレスポンスヘッダ
        /// </returns>
        protected string CreateResponseHeader()
        {
            if (Channel == null)
            {
                return("HTTP/1.0 404 NotFound\r\n");
            }
            switch (GetBodyType())
            {
            case BodyType.None:
                return("HTTP/1.0 404 NotFound\r\n");

            case BodyType.Content:
            {
                bool mms =
                    Channel.ChannelInfo.ContentType == "WMV" ||
                    Channel.ChannelInfo.ContentType == "WMA" ||
                    Channel.ChannelInfo.ContentType == "ASX";
                if (mms)
                {
                    return
                        ("HTTP/1.0 200 OK\r\n" +
                         "Server: Rex/9.0.2980\r\n" +
                         "Cache-Control: no-cache\r\n" +
                         "Pragma: no-cache\r\n" +
                         "Pragma: features=\"broadcast,playlist\"\r\n" +
                         "Content-Type: application/x-mms-framed\r\n");
                }
                else
                {
                    return
                        ("HTTP/1.0 200 OK\r\n" +
                         "Content-Type: " +
                         Channel.ChannelInfo.MIMEType +
                         "\r\n");
                }
            }

            case BodyType.Playlist:
            {
                bool mms =
                    Channel.ChannelInfo.ContentType == "WMV" ||
                    Channel.ChannelInfo.ContentType == "WMA" ||
                    Channel.ChannelInfo.ContentType == "ASX";
                IPlayList pls;
                if (mms)
                {
                    pls = new ASXPlayList();
                }
                else
                {
                    pls = new M3UPlayList();
                }
                pls.Channels.Add(Channel);
                return(String.Format(
                           "HTTP/1.0 200 OK\r\n" +
                           "Server: {0}\r\n" +
                           "Cache-Control: private\r\n" +
                           "Content-Disposition: inline\r\n" +
                           "Connection: close\r\n" +
                           "Content-Type: {1}\r\n",
                           PeerCast.AgentName,
                           pls.MIMEType));
            }

            default:
                return("HTTP/1.0 404 NotFound\r\n");
            }
        }