首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用asp.net播放mp3歌曲

使用asp.net播放mp3歌曲
EN

Stack Overflow用户
提问于 2011-08-29 22:52:48
回答 3查看 5.1K关注 0票数 1

我正在开发一个在线听音乐网站上,我想播放基于用户选择的歌曲从gridview.right现在我正在使用闪存对象播放mp3和视频文件这是运行良好,但它的静态path.how我可以动态传递闪存对象的选定歌曲的文件网址。

等待你的回复。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-30 14:52:02

大家好,朋友们,我已经得到了动态播放的答案,song.here是我的代码。

代码语言:javascript
复制
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
    }
}
票数 0
EN

Stack Overflow用户

发布于 2011-08-29 22:59:03

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

最简单的方法是将URL作为flashvar传递,例如通过object/embed标记中的SWF文件的querystring:

代码语言:javascript
复制
MyPlayer.swf?url=/path/to/song.mp3

当然,可以通过一些服务器端逻辑打印/path/to/song.mp3

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

代码语言:javascript
复制
var url : String = root.loaderInfo.parameters['url'];

如果您想在没有指定flashvar时提供一个默认值,这对于开发目的特别有用,您可以通过使用||操作符来实现。

代码语言:javascript
复制
var url : String = root.loaderInfo.parameters['url'] || 'default.mp3';

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

使用ExternalInterface和Javascript

如果你不想重新加载页面,可以使用ExternalInterface为你的Flash player设置一个javascript界面,例如:

代码语言: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中,您可以执行以下操作:

代码语言:javascript
复制
var swf = document.getElementById('idOfSwfEmbed');
swf.playUrl('http://example.com/path/to/song.mp3');

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

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

票数 1
EN

Stack Overflow用户

发布于 2011-08-29 23:03:45

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

将以下内容添加到标记中:

代码语言:javascript
复制
<object ...>
    <param name="flashvars" value="path=<%# YOUR_PATH; %>">
</object>

然后在SWF中:

代码语言:javascript
复制
var path:String = root.loaderInfo.parameters.path;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7231811

复制
相关文章

相似问题

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