Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 01.06.2016
Сообщений: 3

Ошибка во время воспроизведения mp3 файла

01.06.2016, 20:23. Показов 1766. Ответов 3

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток Написал недавно программу для курсового проекта, тема там была с разработкой и наследованием TrackBar, но дело не в этом.
У меня программа мп3-плеер. Создал обьект WMPLib::WindowsMediaPlayerClass. Поставил в качестве звуковой дорожки компонент TrackBar, все компилируется и работает, в норме. Но вот беда в том что не всегда оно хорошо работает, бывают случаи, что когда TrackBar принимает значение дальности звуковой дорожки, есть вероятность того что программа вылетает. Вот код: двух событий Открытие мп3 - файла, и таймер с периодичностью в секунду:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
private: System::Void начатьToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
             open->ShowDialog();
             mainplay->settings->volume = 10;
             mainplay->URL = open->FileName;
             s = true;
             button2->Text = "ll";
             listBox1->Items->Add(open->SafeFileName);
             file_URL[0] = open->FileName;
             listBox1->SetSelected(0, true);
             button2->Enabled = true;
             myTrackBar1->Enabled = true;
             начатьToolStripMenuItem->Enabled = false;
             новыйToolStripMenuItem->Enabled = true;
             добавитьВПлейлистToolStripMenuItem->Enabled = true;
             добавитьИЗапуститьToolStripMenuItem->Enabled = true;
             button4->Enabled = true;
             this->listBox1->SelectedIndexChanged += gcnew System::EventHandler(this, &musik::listBox1_SelectedIndexChanged);
             timer1->Enabled = true;
}
private: System::Void timer1_Tick(System::Object^  sender, System::EventArgs^  e) {
             myTrackBar1->Value = floor(mainplay->controls->currentPosition);
             min = floor(floor(mainplay->controls->currentPosition) / 60);
             sec = floor(mainplay->controls->currentPosition) - 60 * min;
             label1->Text = String::Format("{0:D10}: {1}/{2:D2}:{3:D2}", mainplay->currentMedia->name,
                 mainplay->currentMedia->durationString, min, sec);
             if (s == true) {
                 myTrackBar1->Maximum = floor(mainplay->currentMedia->duration);
                 myTrackBar1->Value = floor(mainplay->controls->currentPosition);
                 s = false;
             }
}
Скрины с ошибками смотреть в вложениях
Вопрос: как можно оптимизировать код, чтобы эти ошибки не появлялись (пусть они и не всегда появляются, когда заработает а когда нет). А то будет обидно когда при защите курсового проекта и демонстрации программы, выбьет эта ошибка (пусть и вероятность вылета этой ошибки 1 к 10). но всё же.
Заранее спасибо
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.06.2016, 20:23
Ответы с готовыми решениями:

Библиотека для воспроизведения mp3 файла по url
Какую библиотеку лучше выбрать? Нужна возможность воспроизводить mp3 файлы на компьютере и по url.

Как использовать DirictX для воспроизведения MP3 файла?
Подскажите, как использовать DirictX для воспроизведения MP3 файла в проекте. Те библиотеки dll что есть у меня устаревшие, ну и не...

Дайте код для воспроизведения mp3 или wav файла!
Привет всем! Дайте код для воспроизведения mp3 или wav файла! Буду благодарен)

3
0 / 0 / 0
Регистрация: 01.06.2016
Сообщений: 3
01.06.2016, 20:32  [ТС]
На форуме впервые, поэтому извиняюсь, только сейчас понял как вставить скрины.
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
04.06.2016, 08:01
Лучший ответ Сообщение было отмечено Mihail_project как решение

Решение

Текст исключения вполне ясно описывает проблему - вы помещаете в свойство Value недопустимое значение.

Когда вылетает ошибка, запустите отладку.
В отладке проверьте, почему в Value записываются значения, выходящие из диапазона [Minimum ... Maximum], там будет видно текущее значение всех переменных в области видимости.
1
0 / 0 / 0
Регистрация: 01.06.2016
Сообщений: 3
04.06.2016, 11:04  [ТС]
tezaurismosis, Спасибо, частично помогло, а там уже сам догадался. Оказывается проигрыватель не успевал ещё с аудио файла считать длину звукового файла, и на какой секунде файл проигрывается, а я уже пытался записать значение в TrackBar. И когда запускал музыку в длиной около часа - 100% ошибка, а когда около пяти минут, то там ошибка не всегда выскакивало (успевало считать). Сейчас условие поставил перед тем как в TrackBar записывать, и теперь все работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.06.2016, 11:04
Помогаю со студенческими работами здесь

Написание простейшей программы для воспроизведения аудио файла в формате mp3
Долго искал так ничего и не нашёл.

Ошибка во время воспроизведения
Помогите исправить ошибку! Условия: 1)Проверил python установлен нормально (написал pip в командной строке) 2)Песня точно в...

Ошибка воспроизведения последнего файла
Всем здрасте =) как и ожидалось, за проект (МП3-плеер) я получил 5, на следующем курсе надо будет дорабатывать =/ однако стала...

Программа для воспроизведения Mp3
Добрый день всем, задали в универе сделать программу для воспроизведения MP3 файлов в delphi , не разу не делал( Подскажет кто с чего...

Написание библиотеки для воспроизведения MP3
Хочу вкупе своей программе добавить библиотеку для МР3. Можно ссылочек на то, как воспроизводить звук, и то, как устроен фаил? Если нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru