使用asp.net播放mp3歌曲

时间:2011-08-29 14:52:48

标签: c# asp.net flash

我正在开发一个在线听音乐网站,我希望根据gridview.right中的用户选择播放歌曲现在我正在使用flash对象来播放mp3和视频文件这是运行正常但它的静态路径。我可以在flash对象上动态传递所选歌曲的文件URL。

等待你的回复。

3 个答案:

答案 0 :(得分:2)

使用flashvars(需要重新加载页面/ SWF)

最简单的方法是将URL作为flashvar传递,例如通过object / embed标签中的SWF文件的查询字符串:

MyPlayer.swf?url=/path/to/song.mp3

/path/to/song.mp3当然可以通过某些服务器端逻辑打印出来。

在Flash中,您可以使用根的LoaderInfo实例访问此变量的值:

var url : String = root.loaderInfo.parameters['url'];

如果要在没有指定flashvar的情况下提供默认值,特别适合开发目的,可以使用||运算符来执行此操作。

var url : String = root.loaderInfo.parameters['url'] || 'default.mp3';

这将使用指定的URL(如果存在),或者回退使用default.mp3。

使用ExternalInterface&的Javascript

如果您不想重新加载页面,请使用ExternalInterface为您的Flash播放器设置一个javascript界面​​,例如:像这样:

if (ExternalInterface.available) {
    ExternalInterface.addCallback('playUrl', playUrl);
}

function playUrl(url : String) : void {
    // TODO: Add playback code here, e.g. using new Sound(url);
}

然后,从Javascript,你可以这样做:

var swf = document.getElementById('idOfSwfEmbed');
swf.playUrl('http://example.com/path/to/song.mp3');

这将使用playUrl()设置的javascript API调用ActionScript方法ExternalInterface.addCallback()

我不懂.NET,所以当你在GridView中选择一首歌时,你需要弄清楚如何调用playUrl() javascript方法。

答案 1 :(得分:0)

如果您使用<object />标记将* .swf添加到页面:

在标记中添加以下内容:

<object ...>
    <param name="flashvars" value="path=<%# YOUR_PATH; %>">
</object>

然后在SWF里面:

var path:String = root.loaderInfo.parameters.path;

答案 2 :(得分:0)

朋友们,我已经得到了动态播放歌曲的答案。我的代码就是这个。

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName.Equals("Play Now"))
    {
        int index = Convert.ToInt32(e.CommandArgument);
        GridViewRow row = gridCalls.Rows[index];
        string songname = row.Cells[5].Text; // second column in the sql server database
        StringBuilder str = new StringBuilder();
        str.Append("<object width='300px' height='300px'>");
        str.Append("<param name='autostart' value='true'>");
        str.Append("<param name='src' value='songs/" + songname + "'>");
        str.Append("<param name='autoplay' value='true'>");
        str.Append("<param name='controller' value='true'>");
        str.Append("<embed width='300px' height='300px' src='songs/" + songname + "' controller='true' autoplay='true' autostart='True' type='audio/wav' />");
        str.Append("</object>");

        LoadPlayer.Text = str.ToString();//here loadplayer is label control
    }
}