Делаю зачётную))) Два месяца на неё убил)))
Итак, есть в проекте папка Music. В ней музыка в WMA.
На форме есть MediaElement - player1
И есть кнопки воспроизведения\паузы, стоп и вперёд-назад.
Итак, при Loaded у player1 делается :
m0 = new Uri("/Music/Devil May Cry - Shall Never Surrender.wma", UriKind.RelativeOrAbsolute);
m1 = new Uri("/Music/I can't escape this hell.wma", UriKind.RelativeOrAbsolute);
m2 = new Uri("/Music/Devil May Cry - Lock and Load.wma", UriKind.RelativeOrAbsolute);
m3 = new Uri("/Music/Drop the bombshell.wma", UriKind.RelativeOrAbsolute);
m4 = new Uri("/Music/God Rises - Death with High Pride.wma", UriKind.RelativeOrAbsolute);
m5 = new Uri("/Music/Devil May Cry - Sworn Through Swords.wma", UriKind.RelativeOrAbsolute);
Затем есть метод choser. Он отвечает за промотку. Код:
public void chooser(bool arrshow)
{
player1.Stop();
if (arrshow == true) {playlist++;} else {playlist--;}
switch (playlist % 6)
{
case 0: {player1.Source = m0;break;}
case 1: {player1.Source = m1;break;}
case 2: {player1.Source = m2;break;}
case 3: {player1.Source = m3;break;}
case 4: {player1.Source = m4;break;}
case 5: {player1.Source = m5;break;}
}
}
переменная playlist инициализирована сразу после объявления класса.
Кнопка воспроизведения - player1.Play();
Кнопка "Вперёд" - chooser(true); player1.Play();
"Назад" отличается только тем, что в chooser передаётся false.
И что странно: всё мотается. При нажатии на кнопку воспроизведения звучит музыка.
А вот при нажатии на "Вперёд" или "Назад", музыка не воспроизводится. Правда, если потом нажать на кнопку воспроизведения, то музыка звучит. Странно, не находите?
Как решить эту проблему - не знаю. Количество документации по языкам программирования на русском намекает, что у нас ASM популярнее Delphi, Basic и C# вместе взятых.
Если кто поможет решить эту проблему и решение не будет похоже на написание всего с нуля - обещаю подарить ещё 99 баллов. Если кому-то нужно.
Примечание:
Так я и сделал. Просто player1.Play(); вызывается уже в другом методе, после того, как будет изменён Source. Но впрочем, я и в Switch пихал в каждый case player1.Play(); - эффект тот же
Примечание:
>...что программист должен владеть английским
я владею средним техническим и слабым разговорным. Всё равно сложно.
Примечание:
Всё, решение найдено. Нужно было почитать MSDN - виновато свойство AutoPlay
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.