我正在開發一個在線聽音樂網站,我想根據用戶從gridview.right選擇播放歌曲,現在我正在使用Flash對象播放這個正在運行的MP3和視頻文件罰款,但其靜態path.how我可以動態傳遞所選歌曲的文件URL在Flash對象上。使用asp.net播放mp3歌曲
等待您的回覆。
我正在開發一個在線聽音樂網站,我想根據用戶從gridview.right選擇播放歌曲,現在我正在使用Flash對象播放這個正在運行的MP3和視頻文件罰款,但其靜態path.how我可以動態傳遞所選歌曲的文件URL在Flash對象上。使用asp.net播放mp3歌曲
等待您的回覆。
你好朋友,我已經得到了動態播放歌曲的答案。這是我的代碼。
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
}
}
最簡單的方法將是在URL傳遞作爲Flash變量,例如通過SWF文件中的對象/嵌入標籤查詢字符串:
MyPlayer.swf?url=/path/to/song.mp3
的/path/to/song.mp3
當然可以通過一些服務器端邏輯打印。
在Flash中,你就可以使用root的LoaderInfo
實例訪問這個變量的值:
var url : String = root.loaderInfo.parameters['url'];
如果要提供時沒有指定Flash變量的默認,這是偉大的開發特別是,您可以通過使用||
運算符來完成此操作。
var url : String = root.loaderInfo.parameters['url'] || 'default.mp3';
這將使用指定的URL,如果這種存在,否則退回到使用default.mp3。
如果你不想重新載入頁面,使用ExternalInterface的,例如建立一個JavaScript接口您的Flash播放器像這樣:
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');
這將使用由ExternalInterface.addCallback()
設立的JavaScript API調用的ActionScript方法playUrl()
。
我不知道.NET,因此您需要弄清楚如何在GridView中選擇歌曲時調用playUrl()
javascript方法。
flash對象頁面沒有區別,但此對象可用於gridvewi上的同一頁面上。 –
@mayur:我不確定我瞭解你。你是說你不想重新加載頁面?如果是這種情況,那麼看看ExternalInterface。如果您正在重新加載頁面(或導航到單獨的頁面播放歌曲),那麼上述解決方案將正常工作。 – richardolsson
richardolsson,我不想回發頁面,也不想要在另一頁導航 –
如果使用<object />
標籤的* .swf文件添加到頁面:
添加下列標籤:
<object ...>
<param name="flashvars" value="path=<%# YOUR_PATH; %>">
</object>
然後是SWF裏面:
var path:String = root.loaderInfo.parameters.path;
它必須是閃存?因爲有可用於asp.net的媒體播放器控件,可以適合您的需要 – UrbanEsc