我完全按照书上的做的,为什么从列表那点击播放后不播放呢?

解决方案 »

  1.   

    MPList.aspx
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="playlist" runat="server" AutoGenerateColumns="False" OnSelectedIndexChanged="playlist_SelectedIndexChanged">
                <Columns>
                    <asp:BoundField DataField="m_id" HeaderText="编号" />
                    <asp:BoundField DataField="m_name" HeaderText="名称" />
                    <asp:BoundField DataField="m_cname" HeaderText="创作者" />
                    <asp:BoundField DataField="m_ycname" HeaderText="演唱者" />
                    <asp:CommandField SelectText="播放" ShowSelectButton="True" />
                </Columns>
            </asp:GridView>
        
        </div>
        </form>
    </body>
    MPList.aspx.cs
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;public partial class 在线播放音乐_MPList : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["mp34play"].ConnectionString);
                con.Open();
                SqlDataAdapter da = new SqlDataAdapter("select * from mp34", con);
                DataSet ds = new DataSet();
                da.Fill(ds);
                this.playlist.DataSource = ds;
                this.playlist.DataBind();
                con.Close();
            }
        }
        protected void playlist_SelectedIndexChanged(object sender, EventArgs e)
        {
            string aa = this.playlist.SelectedRow.Cells[0].Text.ToString();
            Response.Redirect("Play.aspx?m_id='" + aa + "'");
        }
    }Play.aspx
    <body>
        <form id="form1" runat="server">
        <div>
            <table width= "759 "border= "0 " align= "center "> 
            <tr> 
                <td   align= "center "> 
                <object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer2" width=400 height=400 >
                <asp:Label ID="Label1" runat="server" />
                <!--param name="Filename" value="<% =url %>">-->
                <param   name= "UIMode"value="none"/> 
                <param   name= "AutoStart"value="1"/> 
                <param   name= "Enabled"value="true"/> 
                <param   name= "ShowControls"value="-1"/> 
                <param   name= "ShowGotoBar"value="0"/> 
                <param   name= "ShowStatusBar"value="-1"/> 
                <param   name= "EnableFullScreenControls "value= "1"/> 
                <param   name= "EnablePositionControls"value= "1"/> 
                <param   name= "Volume"value="100"/> 
                <param   name= "DisplaySize"value= "0"/> 
                <param   name= "SendErrorEvents"value= "0"/> 
                <param   name= "enableContextMenu"value= "0"/> 
                <param   name= "EnableStretchToFit"value= "1"/> 
                <param   name= "EnableTracker"value= "1"/> 
                </object> 
                    </td> 
            </tr> 
            </table>
        </div>
        </form>
    </body>
    Play.aspx.cs
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;public partial class 在线播放音乐_Play : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                string id = Request["m_id"].ToString();
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["mp34play"].ConnectionString);
                con.Open();
                SqlCommand cmd = new SqlCommand("select m_name from mp34 where m_id='" + id + "'", con);
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    string name = dr["m_name"].ToString();
                    string url = "music/" + name;
                    Label1.Text = "<param name='Filename' value='" + url + "'>";
                }
            }
            catch
            {
                Response.Redirect("MPList.aspx");
            }
        }
    }
      

  2.   

    看这么代码就知道了        <asp:GridView ID="playlist" runat="server" AutoGenerateColumns="False" OnSelectedIndexChanged="playlist_SelectedIndexChanged">
                <Columns>
                    <asp:BoundField DataField="m_id" HeaderText="编号" />
                    <asp:BoundField DataField="m_name" HeaderText="名称" />
                    <asp:BoundField DataField="m_cname" HeaderText="创作者" />
                    <asp:BoundField DataField="m_ycname" HeaderText="演唱者" />
                    <asp:CommandField SelectText="播放" ShowSelectButton="True" />
                </Columns>
            </asp:GridView>
    那书只是教如你如何绑定数据,顺便找了个音乐例子而己,并不能播放的,它只是个教你如何绑定数据显示而己实际上,你要播放音乐,还要有一个播放器。你可以百度一个MP3播放器。你需要在网页上加入一个播放器,并填上相关MP3地址,就可以播放了
      

  3.   

    播放器在Play.aspx页面上.<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer2" width=400 height=400 >
    播放的是本地文件夹的音乐,.
    加上这句后  <!--param name="Filename" value="<% =url %>">-->
    会报错  编译器错误信息: CS0103: 当前上下文中不存在名称“url”去掉后,try里面的不会执行.
      

  4.   

    只要你点击的那个事件中,给mediaPlay控件的url赋上正确的url链接或你本地路径下的音乐的全称(路径+音乐名称.后缀名称),就可以播放了!
      

  5.   

    param name="Filename" value="<% =url %>">改成
    param name="Filename" value='<% =url %>'>改成单引号如果还提示没url,可以数据库字段没有url这个字段,或者,你在查询时,在SQL语句中,更改了url名称
      

  6.   

    这个Url是你Play.aspx.cs中的参数
      

  7.   

     string name = dr["m_name"].ToString();
     string url = "music/" + name;
     name有音乐文件的后缀名吗?
      

  8.   

    有的,现在的关键问题是
    编译器错误信息: CS0103: 当前上下文中不存在名称“url”
      

  9.   

    前台不变改成这样using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;public partial class 在线播放音乐_Play : System.Web.UI.Page
    {
        protected string url=null;//在这里声明一个变量
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                string id = Request["m_id"].ToString();
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["mp34play"].ConnectionString);
                con.Open();
                SqlCommand cmd = new SqlCommand("select m_name from mp34 where m_id='" + id + "'", con);
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    string name = dr["m_name"].ToString();
                    url = "music/" + name;//这里直接用就行了
                    Label1.Text = "<param name='Filename' value='" + url + "'>";
                }
            }
            catch
            {
                Response.Redirect("MPList.aspx");
            }
        }
    }
    前台直接<%=url%>就能读取到
      

  10.   

    CS0103: 当前上下文中不存在名称“url”
    没有声明url变量啊也可以用jquery 插件去播放啊
      

  11.   

    这个问题解决了  可是还是不播放,或者说是,直接catch   又跳回来了...
      

  12.   

    用jplayer
    例子:
    <link href="skin/cssreset.css" rel="stylesheet" type="text/css" /> 
    <link href="skin/default/css/default.css" rel="stylesheet" type="text/css" /> 
    <!--[if lt IE 7]>
    <style type="text/css">
    .playlist_content_songer .imgDiv a span { behavior: url(skin/default/css/iepngfix.htc); cursor: pointer; }
    #player_play{behavior: url(skin/default/css/iepngfix.htc); }
    #player_pause{behavior: url(skin/default/css/iepngfix.htc); }
    </style>
    <![endif]-->
    <script type="text/javascript" src="js/jquery-1.3.2.js"></script> 
    <script type="text/javascript" src="js/jquery.jplayer.js"></script> 
    <script type="text/javascript" src="js/jquery.mousewheel.js"></script> 
    <script type="text/javascript" src="js/common.js"></script>
    <script type="text/javascript" language="javascript">
     function gechi(musicname)
     {
      
               $.ajax({
                 type:"post",//提交方式
                 url:"ajaxval.aspx",         //提交地址
                 data: "name="+musicname,//提交的数据
                 success:function(msg){//根据返回状态,给出相关提示
                   if (msg!=null) {
                       $("#<%=Label1.ClientID%>").html(msg); }
    //                else 
    //                $("#<%=Label1.ClientID%>").text("获取不到歌词");}
    //                  $("#Label1").val="获取不到歌词";
                        }
               });      
     }
    </script>
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <div>
    <div style="float:left; width:263px; text-align:center; height:410px;overflow:scroll" >
    <div style="width:240px; text-align:center">
        <asp:Label ID="Label1" runat="server" Text="歌词"></asp:Label>
    </div>
    </div>
    <div id="container" style="float:right; margin-top:3px; margin-bottom:3px" >
    <div id="jquery_jplayer"></div> 
    <div id="player_title">
    <h1>音乐盒</h1>
    </div>
    <div id="playlist_list"> 
    <div class="playlist_main">
    <div class="playlist_wrap" >
    <div class="playlist_cc">
    <ul class="playlist_content" > 
                        <asp:Repeater ID="Repeater1" runat="server">
                        <ItemTemplate>
                       
                        <li onclick='gechi("<%# Eval("musicname")%>")' class="player" jplayer='<%# Eval("musicpath") %>' songer="许慧欣" ablum="幸福的糖" songimg="skin/default/images/songer/1.jpg">
    <a href="#" class="controllink" ></a>
    <p ><%# Eval("musicname")%></p>
    </li>
     </ItemTemplate>
                        </asp:Repeater>

    </ul>
    </div> 
    </div>
    </div> 
    <div class="playlist_footer_content">
    <ul class="playlist_footer">
    <li class="list_play_zhi"><a href="#">直接播放</a></li>
    <li class="list_up_one"><a href="#">上一首</a></li>
    <li class="list_up" style="display:none;"><a href="#">上 翻</a></li>
    <li class="list_down" style="display:none;"><a href="#">下 翻</a></li>
    <li class="list_down_one"><a href="#">下一首</a></li>
    <li class="list_ramdom"><a href="#">随便听听</a></li>
    </ul>
    </div>
    </div> 
    </div> 
        <br />
        </div>
    </asp:Content>