Воспроизведение mp3 песни с использованием asp.net - PullRequest
1 голос
/ 29 августа 2011

Я занимаюсь разработкой веб-сайта, посвященного прослушиванию музыки, на котором я хочу воспроизводить песню на основе выбора пользователя из gridview. Сейчас я использую flash-объект для воспроизведения mp3 и видеофайлов, все работает нормально, но имеет статический путь .how Я могу динамически передавать URL файла выбранной песни на объект flash.

жду вашего ответа.

Ответы [ 3 ]

2 голосов
/ 29 августа 2011

Использование flashvars (требуется перезагрузка страницы / SWF)

Самый простой способ - передать URL-адрес как flashvar, например, через строку запроса SWF-файла в теге object / embed:

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

Если вы не хотите перезагружать страницу, настройте интерфейс javascript для своего Flash-проигрывателя с помощью ExternalInterface, например, вот так:

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');

Это вызовет метод ActionScript playUrl() с использованием API javascript, который был установлен с помощью ExternalInterface.addCallback().

. Я не знаю .NET, поэтому вам нужно выяснить, как вызывать метод javascript playUrl(), когда в GridView выбрана песня.

0 голосов
/ 30 августа 2011

Привет друзья! У меня есть ответ для динамического воспроизведения песни. Вот мой код для этого.

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 голосов
/ 29 августа 2011

Если вы используете тег <object /> для добавления * .swf на страницу:

Добавить следующее тегу:

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

А потом внутри SWF:

var path:String = root.loaderInfo.parameters.path;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...