Что нового

Electro Player - Программа для прослушивания музыки

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
AutoIt: 3.3.10.2
Версия: 2.1.0.1

Категория: Графика, GDI+, Интернет, Разное, Музыка

Описание:
Музыкальный плеер собранный на основе "bass.dll", способен воспроизвести все известные форматы включая формата качества Lossless (m4a, m4b и.п.р...). Основной функционал программы позволяет прослушивать и скачивать музыку из "ВКонтакте", прослушивать хранящийся музыку на "Винчестере", Добавлять в независимый плейлист свои любимые композиции.
Так-же в программе присутствует 30 полосной эквалайзер, что позволит настроить частоты музыки более идеальными для ваших подключаемых устройств прослушивания музыки. Имеются 4 пользовательских режима эквалайзера, без надобности загружать файл "эквалайзера" для каждого устройства, нужно лишь переключить режим.
Имеется поиск для быстрого доступа к определенной композиции, если установлен режим "VK", то выводится дополнительных 300 пунктов поиска, их можно добавить себе на страницу или в избранное (плейлист).

Файл:
Скачать ZIP

Снимок:





История версий:
2.1.0.1
1. Изменено отображение воспроизводимой музыки.
2. Изменено отображение списка песен.
3. Добавлена сортировка по исполнителю.
4. Добавлена панель информации.
5. Громкость перенесена в панель информации.
6. Управляющие элементы перенесены в панель информации.
7. Добавлены теги для поиска в панель информации.
8. Изменен поиск в отображении списка песен.
9. Изменено определение клавиш поиска.
10. Анимация в трее при загрузки музыки из ВК.

2.0.0.5
1. Исправлена ошибка с файлами, если файл не поддерживается не зависает на нем, а переходит дальше.
2. Улучшен поиск, кнопки срабатывают сразу.
3. Добавлено показ времени в перемотку композиции.

2.0.0.4
1. Распределено все по папкам.
2. Мелкие исправления.
3. Оптимизация кода под новый вид условий (1 > 0) ? true : false
4. Изменена фоновая картинка.

2.0.0.3
1. Исправлена ошибка в слове :-[
2. Исправлен крестик выхода из авторизации ВК.

2.0.0.2
1. Добавил Drag&Drop файлов в окно.
2. Подправил шрифт подсказок.

2.0.0.1
1. Переписан код под новый движок.
2. Графический движок написан на PureBasic.
3. Добавлен скроллинг по списку колесиком мыши с инертностью.
4. Улучшена поддержка музыки из "ВКонтакте".

1.0.0.4
1. Добавлены действия на музыкальные клавиши.
2. Исправлена ошибка Line: 38733, 38760, 39166
3. Добавлен в трей пункт "открыть окно"

Источник: GreenBytes
Автор(ы): Ganibal95 (GAPI95)
 

erlik

Продвинутый
Сообщения
317
Репутация
84
Ganibal95
В целом выглядит очень неплохо - лаконичный дизайн сейчас в тренде :smile: (разве что мини-подсказок к кнопочкам в заголовке окна добавить, хотя это не так важно).
Главный замеченный минус: где то ты или забыл Sleep'ов в циклах добавить, либо еще как то оптимизировать - 8-12% ресурсов проца просто при запуске и до 17 % при воспроизведения музыки - это, скажем так, многовато. Заметил, что процент съедания ресурсов увеличивается при переключении на вкладку списка музыки.
Для примера, AIMP, кушает 0 % при запуске и 0.5 % при воспроизведении.
И еще - по умолчанию (ИМХО) может быть стоит сделать слайдер громкости на 50 %? А то не сразу понимаешь, что громкость вообще на нуле и думаешь, что музыка не проигрывается.
Далее будем еще тестить.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
у меня одного скринов не видно?
 

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
у меня тоже скринов не видно
не нашел "воспроизведение случайное". если нет такой функции, то неплохо бы добавить.
ну а так , даже ничего себе :smile:
ну и цп хавает тоже ничего себе. в покое 15%.при воспроизведение все 25- 30%
 

Arei

Скриптер
Сообщения
938
Репутация
115
Аххххааааа, ну что Санёк до оптимизировался?
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Arei
Это ты к чему? :/


Добавлено:
Сообщение автоматически объединено:

erlik [?]
Главный замеченный минус: где то ты или забыл Sleep'ов в циклах добавить, либо еще как то оптимизировать - 8-12% ресурсов проца просто при запуске и до 17 % при воспроизведения музыки - это, скажем так, многовато.
Ну насчет нагрузки на ЦП у меня не достигает 4% :scratch:
Так-же есть кнопка свернуть, она сворачивает в трей и ресурсы не тратятся на прорисовку.
Я там добавил Sleep от WinAPI может он у вас так "плохо" работает, попробую добавить обычный Sleep в следующей версии.
В принципе когда я тестировал на стационарном компьютере он 2009 г. там загрузка на ЦП чуть ли не достигала 40 %. Вообще нагрузка из-за того что ему нужно 24 раза за секунду перерисовать изображение (GDI+).
Ну и собственно мой скриншот:


Как я заметил пишут что не окрываються скриншоты, хотя я их из облака ставил. Сейчас обновлю.


Добавлено:
Сообщение автоматически объединено:

joiner [?]
не нашел "воспроизведение случайное". если нет такой функции, то неплохо бы добавить.
Нужно нажать 2 раза на кнопку левую с низу :smile: там будут нарисованы 2 стрелочки, обычно похожие на рандом.
 

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
анимация ест много. большую часть от указанных мною 30%
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
Пожелания учитываются ? =))))

Windows XP SP3 RUS - запустился, работает... все здорово.
Установил все папки в "настройках" - залогинился в ВК. Список ВК увидел - все здорово. Даже послушал песенки.

Пожелание РАЗ: мы слева имеем список песенок из 9 строк - а можно прикрутить ползунок, чтобы листать ниже/выше.

По поводу ВК: залогинился через программу - все вроде здорово. Дал добро на приложение "Ganibal95" (инфу о себе + аудио). Включил музыку - все работает.

Момент РАЗ:
Открываем браузер - заходим в ВК - далее в "Приложения" - Настройки (вверху справо) - в списке "** клиентских приложений" видим приложение "Ganibal95" - жмем "Убрать".
Ползем в "Player.exe" - в список VK. Выпрыгивает окно для разрешения приложения. Пытаемся нажать "ОТМЕНА"/"Выйти из под аккаунта". Отменить не работает, к сожалению... могу только нажать "РАЗРЕШИТЬ".

Момент ДВА:
Открываем браузер - заходим в ВК - Мои настройки - Общие (http://vk.com/settings) и там есть такая штука "Безопасность Вашей страницы".
Смотрим на список - приложение "Ganibal95" получало доспут - тут все ок. Далее нажимаем "Завершить все сеансы".



Ползем в "Player.exe" - в список VK. Ошибка "Невозможно загрузить данные из "Вконтакте"


Т.е. программа где-то хранит мои данные от "Вконтакте" (логин/пароль) и перелогиниваться не пытается((((

Спасибо за прогу.

PS на счет CPU. У меня ПК на работе: 2 ярда (3,00 Гц) + 2 Gb RAM.
* Прога без "прыгалок под музыку" кушает 15-25, с ним же еще один процесс "System" кушает стабильно 10.
* Если "прыгалки" включить прога - 20-40 и процесс "System" кушает стабильно 10.
 

erlik

Продвинутый
Сообщения
317
Репутация
84
Ganibal95
... на ЦП у меня не достигает 4%
Допускаю, что у тебя хороший 4-x ядерный проц из последнего поколения. У меня 4 ядра, но проц из старой линейки, к тому ж работает сейчас на низкой частоте (убрал разгон).
Так что у всех по разному твоя прога будет ресурсы кушать, но нужно понимать, что не у всех стоят мощные (и разогнанные ) процы :smile:
Поэтому пожелание попробовать как то оптимизировать сей момент.
Хотя, конечно, сложно сказать можно ли снизить потребление ресурсов анимацией - как указал joiner. Я с GDI+ пока не работал.
---Zak---
... а можно прикрутить ползунок, чтобы листать
Листать то там можно, но сделано неочевидно: нужно курсором список цеплять и двигать вверх-вниз. Колесиком мышки никак. А хотелось бы - для большего удобства.
 

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
Товарищ Ganibal95, давай доделывай свое детище..всем уже интересно ;)
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
ivsatel
Строка 38733:
Код:
_GDIPlus_GraphicsClear(DllStructGetData($hList, "Sprite"), 0)

Удалил строку, т.к она не используется.


---Zak--- [?]
Пожелания учитываются ?
Да, вполне.


мы слева имеем список песенок из 9 строк - а можно прикрутить ползунок, чтобы листать ниже/выше.

erlik [?]
Листать то там можно, но сделано неочевидно: нужно курсором список цеплять и двигать вверх-вниз. Колесиком мышки никак. А хотелось бы - для большего удобства.
Я так понел, что следует добавить прокрутку колесиком мышки, учту!


---Zak--- [?]
Выпрыгивает окно для разрешения приложения. Пытаемся нажать "ОТМЕНА"/"Выйти из под аккаунта". Отменить не работает, к сожалению... могу только нажать "РАЗРЕШИТЬ".
Я брал библиотеку VK API разработанную "Медиком" и еще кем-то... http://autoit-script.ru/index.php/topic,7517.0.html, ихний вариант авторизации мне тоже не нравится, т.к нажимаешь крестик выходит из программы. насчет того что где-то хранит логин и пароль программа я не знаю, т.к VK API библиотека не моя, но так понимаю вариант авторизации придется переделывать (самого сильно раздражает) Кнопку выход из аккаунта действительно нужно добавить, учту.


Т.е. программа где-то хранит мои данные от "Вконтакте" (логин/пароль) и перелогиниваться не пытается
Не где ничего не хранит, и перелогенится пытается!

erlik [?]
Допускаю, что у тебя хороший 4-x ядерный проц из последнего поколения.

Я не отрицаю что у других будет "кушать" программа больше или меньше, просто я опирался на данных своего компьютера. По пробую разобраться что именно грузит ЦП, т.к на стационаре доходит до 40%, т.е можно будет по пробовать оптимизировать и по экспериментировать именно на нем. Т.е по пробую оптимизировать!
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
ivsatel
Сейчас выложу последнию скомпилированную версию.


Добавлено:
Сообщение автоматически объединено:

Обновил файл в облаке!
 

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Ganibal95
Видно не судьба :stars:
Теперь строка 38760
 

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Ganibal95

И вот теперь работает :laugh:
Спасибо!
Буду слушать, а то радио надоело :smile:

Но на строку 39166 Нужно обратить внимание. "Крашится" плеер при выборе пункта меню

+ Не отображаются названия в плейлисте
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
ivsatel
я не понимаю почему не работает расчет для вывода текста? :scratch:
Код:
Func _GDIPlus_GraphicsDrawStringG($hGraphics, $sString, $nX, $nY, $sFont = "Arial", $nSize = 10, $iFormat = 0, $iARGB = 0xFF000000)
	Local $hBrush = _GDIPlus_BrushCreateSolid($iARGB)
	Local $hFormat = _GDIPlus_StringFormatCreate($iFormat)
	Local $hFamily = _GDIPlus_FontFamilyCreate($sFont)
	Local $hFont = _GDIPlus_FontCreate($hFamily, $nSize)
	Local $tLayout = _GDIPlus_RectFCreate($nX, $nY, 0, 0)
	Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $sString, $hFont, $tLayout, $hFormat)
	Local $aResult = _GDIPlus_GraphicsDrawStringEx($hGraphics, $sString, $hFont, $aInfo[0], $hFormat, $hBrush)
	Local $iError = @error
	_GDIPlus_FontDispose($hFont)
	_GDIPlus_FontFamilyDispose($hFamily)
	_GDIPlus_StringFormatDispose($hFormat)
	_GDIPlus_BrushDispose($hBrush)
	Return SetError($iError, 0, $aResult)
EndFunc   ;==>_GDIPlus_GraphicsDrawString


Код:
Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $sString, $hFont, $tLayout, $hFormat)



Добавлено:
Сообщение автоматически объединено:

ivsatel
Обновил, скачивайте: https://cloud.mail.ru/public/df4f4a5792af/Player.zip


Добавлено:
Сообщение автоматически объединено:

ivsatel
Мне кажется что уже проблема не в программе, а возможно старых версий WinAPI библиотек.


Добавлено:
Сообщение автоматически объединено:

ivsatel
По пробуйте простой пример из справки:
Код:
#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>

Example()

Func Example()
    Local $hGUI, $hGraphic

    ; Create GUI
    $hGUI = GUICreate("GDI+", 400, 300)
    GUISetState(@SW_SHOW)

    ; Draw a string
    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    _GDIPlus_GraphicsDrawString($hGraphic, "Hello world", 140, 110)

    ; Loop until the user exits.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    ; Clean up resources
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
EndFunc   ;==>Example


Желательно приложить скриншот с тестируемым окошком )
 

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Ganibal95 [?]
пример из справки:
Вот совместил:
Код:
#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>

Example()

Func Example()
    Local $hGUI, $hGraphic

    ; Create GUI
    $hGUI = GUICreate("GDI+", 400, 300)
    GUISetState(@SW_SHOW)

    ; Draw a string
    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    ;_GDIPlus_GraphicsDrawString($hGraphic, "Hello world", 140, 110)
	_GDIPlus_GraphicsDrawStringG($hGraphic, "Hello world", 140, 110, "Arial", 10, 0, 0xFF000000)

    ; Loop until the user exits.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    ; Clean up resources
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
EndFunc   ;==>Example


Func _GDIPlus_GraphicsDrawStringG($hGraphic, $sString, $nX, $nY, $sFont, $nSize, $iFormat, $iARGB)
    $hBrush = _GDIPlus_BrushCreateSolid($iARGB)
    $hFormat = _GDIPlus_StringFormatCreate($iFormat)
    $hFamily = _GDIPlus_FontFamilyCreate($sFont)
    $hFont = _GDIPlus_FontCreate($hFamily, $nSize)
    $tLayout = _GDIPlus_RectFCreate($nX, $nY, 0, 0)
    $aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $sString, $hFont, $tLayout, $hFormat)
    $aResult = _GDIPlus_GraphicsDrawStringEx($hGraphic, $sString, $hFont, $aInfo[0], $hFormat, $hBrush)
    $iError = @error
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_BrushDispose($hBrush)
    Return SetError($iError, 0, $aResult)
EndFunc   ;==>_GDIPlus_GraphicsDrawString
Результат тот-же. Все нормально отработало

Заметил, что при использования примера из справки и твоего примера. Текст не перерисовывается при скрытии окна и снова выдвижении его на передний план.
Окно в результате пустое без надписи.
 
Верх