Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Media Player Classic - Black Edition / MPC-BE (часть 3)

Модерирует : gyra, Maz

Maz (13-06-2018 23:10): Media Player Classic - Black Edition / MPC-BE (часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прошлые части топика: часть 1 | часть 2
Media Player Classic - Black Edition


MPC-BE – универсальный проигрыватель аудио и видеофайлов для операционной системы Windоws. Этот проект имеет свою независимую разработку на базе оригинального кода «Media Player Classic» и «Media Player Classic - Home Cinema», со своими нововведениями и оптимизацией.  
Плеер имеет внушительный набор аудио-видео фильтров, который позволяет ему воспроизводить практически все существующие форматы медиафайлов.
Последняя версия с поддержкой XP - 1.4.6 (билд 1590) | неофициальная v1.4.7 от Evgeniy_1990
 
  • История изменений (упрощенный вариант).
  • Заменяемая графика: тулбары, фоновые картинки, иконки.
  • Схема управления плеером посредством тачскрина.

    Системные требования:
  • Windоws Vista, 7, 8, 8.1, 10 (32bit/64bit)  
  • Процессор с поддержкой SSE. Начиная с версии 1.5.1 (build 2631) beta требуется поддержка SSE2.

    Различный софт на тему воспроизведения видео
    Голосование "Выбираем популярные видеоплееры-2018".
     
    Помощь проекту | Помощь форуму.

  • Всего записей: 38741 | Зарегистр. 26-02-2002 | Отправлено: 22:18 24-12-2016 | Исправлено: V0lt, 06:10 24-05-2018
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    judelaw
    Цитата:
    Play, Pause и Play/Pause. Их бы объединить в одну, а то получаются странности.
    Нельзя. Команды Play и Pause специально сделаны отдельно, чтобы была возможность только играть или только паузить.
    Если кому-то хочеться одной кнопкой, тогда используй Play/Pause и не используй Play и Pause.

    Всего записей: 10450 | Зарегистр. 05-02-2003 | Отправлено: 06:39 13-03-2018 | Исправлено: V0lt, 06:41 13-03-2018
    Evgeniy_1990

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    HorrificDoom

    Цитата:
    Кстати хотел ещё спросить, у mpc проблемы с воспроизведением wmv-формата. Есть способ как-то решить эту проблему? Или только конвертить?

    А можно поконкретнее, какой, или какие именно видео файлы данного формата WMV воспроизводятся некорректно?

    Всего записей: 2125 | Зарегистр. 05-07-2014 | Отправлено: 09:14 13-03-2018
    Aleksoid1978



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    HorrificDoom
    Наверное речь идет о тормозной перемотке - ну это не исправить, ибо используется системный source фильтр, а он вот так вот работает.

    ----------
    AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9203 | Зарегистр. 11-05-2006 | Отправлено: 10:31 13-03-2018
    judelaw

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt
    Цитата:
    Если кому-то хочеться одной кнопкой, тогда используй Play/Pause
    Дело в том, что запустить воспроизведение командой Play/Pause не представляется возможным. Функционал ограничен лишь командами Поставить на паузу и Снять с паузы. То есть файл перед этим должен быть открыт и граф построен (командой Play).
    Во многих плеерах на Play/Pause назначен хоткей SPACE. Но только в MPC-* запустить воспроизведение(начать открытие файла и построение графа) по SPACE нельзя. Я еще понимаю mpc-hc, у них кнопки play и pause раздельные, но все равно смысла не вижу.

    Всего записей: 2830 | Зарегистр. 22-09-2009 | Отправлено: 11:13 13-03-2018
    Aleksoid1978



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    judelaw
    Так а в чем проблема вызвать команду Плей ?? Переназначить пробел ??

    ----------
    AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9203 | Зарегистр. 11-05-2006 | Отправлено: 11:20 13-03-2018 | Исправлено: Aleksoid1978, 11:20 13-03-2018
    brRamires

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Если активен плейлист, то назначенная мной клавиша "Вкл/Откл плейлист" (Tab) не скрывает его - там жёстко зашито Ctrl+7

    Вот он хак (PlayerPlaylistBar.cpp):

    Код:
    } else if (pMsg->wParam == 55 && GetKeyState(VK_CONTROL) < 0) {
    GetParentFrame()->ShowControlBar(this, FALSE, TRUE);
    return TRUE;

    Разработчикам
    Хотя бы пропишите туда клавишу, назначенную пользователем. Некрасиво ведь...

    Всего записей: 564 | Зарегистр. 28-09-2008 | Отправлено: 15:13 13-03-2018
    Aleksoid1978



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    brRamires
    Если шаришь - сделай полноценную нормальную обработку клавиши "Вкл/Откл плейлист" в самом плейлисте. И потом выложи сюда патч.
     
    А по поводу клавиш - да, в плейлисте зашито Ctrl+7.

    ----------
    AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9203 | Зарегистр. 11-05-2006 | Отправлено: 15:21 13-03-2018
    judelaw

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleksoid1978
    Цитата:
    Так а в чем проблема вызвать команду Плей ?? Переназначить пробел ??
    А какие причины не сделать по нормальному,  
    разрешить сначала тут:

    Код:
     
    void CMainFrame::OnUpdatePlayPauseStop(CCmdUI* pCmdUI)
    {
        ...
        } else if ((pCmdUI->m_nID == ID_PLAY_PLAY || pCmdUI->m_nID == ID_PLAY_PLAYPAUSE) && m_wndPlaylistBar.GetCount() > 0) {
            fEnable = true;
        }
        pCmdUI->Enable(fEnable);
    }
     

     
    а потом разрешаем команду Play/Pause при fs = -1

    Код:
     
    void CMainFrame::OnPlayPlayPause()
    {
        OAFilterState fs = GetMediaState();
        if (fs == State_Running) {
            SendMessageW(WM_COMMAND, ID_PLAY_PAUSE);
    //    } else if (fs == State_Stopped || fs == State_Paused) {
            } else { // запускаем файл даже при fs=-1
            SendMessageW(WM_COMMAND, ID_PLAY_PLAY);
        }
    }
     

    Всего записей: 2830 | Зарегистр. 22-09-2009 | Отправлено: 15:39 13-03-2018 | Исправлено: judelaw, 15:40 13-03-2018
    brRamires

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleksoid1978

    Цитата:
    Если шаришь

    В том-то и дело, что не шарю, а вам это раз плюнуть.

    Всего записей: 564 | Зарегистр. 28-09-2008 | Отправлено: 15:53 13-03-2018
    Aleksoid1978



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    brRamires
    Скажу честно - я не знаю как это сделать.
     
    judelaw
    Для начала - привет.
    По делу - не надо ломать никакой логики. Все работает как и задумано, и уже не один год.
    А блин поменять "пробел" с одного действия на другое, да и особенно что эти команды рядом - ну прям непосильный труд, так что-ли ))

    ----------
    AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9203 | Зарегистр. 11-05-2006 | Отправлено: 16:22 13-03-2018 | Исправлено: Aleksoid1978, 16:24 13-03-2018
    judelaw

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleksoid1978
    Привет! ))
    Так а в чем логика то? Какое этому практическое применение?
    При условии что плейлист не пустой с тулбара с кнопки Play я могу запустить воспроизведение, а с главного меню Play не могу?

     
    Я не предлагаю объединять три команды Play, Pause, Play/Pause в одну. Я лишь предлагаю команде Play/Pause дать возможность открывать файл, как это делается во всех других плеерах.
     
    Нигде такого нет....  
    чтобы запустить воспроизведение когда файл закрыт нажмите hotkey1
    чтобы запустить воспроизведение когда файл открыт нажмите hotkey2
     
     
    Добавлено:

    Цитата:
    А блин поменять "пробел" с одного действия на другое, да и особенно что эти команды рядом - ну прям непосильный труд, так что-ли ))

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

    Всего записей: 2830 | Зарегистр. 22-09-2009 | Отправлено: 16:51 13-03-2018
    Aleksoid1978



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    judelaw
    Логика в том что оно так было всегда
     
    Менять что либо не буду, по крайней мере сейчас. Надо хорошенько вникнуть, проверить и т.д. А то сколько раз уже было - тут изменил, там выстрелило. Да и че ты так докопался )))

    ----------
    AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9203 | Зарегистр. 11-05-2006 | Отправлено: 16:56 13-03-2018
    judelaw

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleksoid1978
    просто запишите в to do list
    будет время вникни. )))

    Всего записей: 2830 | Зарегистр. 22-09-2009 | Отправлено: 17:02 13-03-2018
    Aleksoid1978



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    judelaw
    Давай так - лично я не против, послушаем что скажут другие ))

    ----------
    AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9203 | Зарегистр. 11-05-2006 | Отправлено: 17:14 13-03-2018
    brRamires

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleksoid1978

    Цитата:
    Скажу честно - я не знаю как это сделать.

    Разве нельзя в методе CPlayerPlaylistBar::PreTranslateMessage удалить проверки "if (pMsg->wParam == VK_ESCAPE)" и "else if (pMsg->wParam == 55 && GetKeyState(VK_CONTROL) < 0)" и соотв. им код, а вместо них для всех клавиш, кроме стандартных для плейлиста Up, Down, Home, End и т.д. добавить запуск метода PreTranslateMessage(MSG* pMsg) класса родительского окна (получаемого, как я понял, через GetParentFrame()), передав ему pMsg? Что-то вроде

    Код:
    if (pMsg->wParam != VK_UP && pMsg->wParam != VK_DOWN
      && pMsg->wParam != VK_HOME && pMsg->wParam != VK_END
      && pMsg->wParam != VK_PRIOR && pMsg->wParam != VK_NEXT
      && pMsg->wParam != VK_DELETE) {
        GetParentFrame()->PreTranslateMessage(pMsg);
        return TRUE;
    }

    Всего записей: 564 | Зарегистр. 28-09-2008 | Отправлено: 19:41 13-03-2018
    HorrificDoom

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Наверное речь идет о тормозной перемотке - ну это не исправить, ибо используется системный source фильтр, а он вот так вот работает.

    Да, об этом речь, что плеер тупо виснет на нём. Просто есть стандартный и родной Виндоус медиа плеер, который этот свой родной формат кушает идеально. Поэтому я думал, что может можно добавить какой-то этот видео-рендер схожий с тем, как у ВМП, чтобы формат читался хорошо.

    Всего записей: 17 | Зарегистр. 12-03-2018 | Отправлено: 20:48 13-03-2018
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    HorrificDoom
    Цитата:
    может можно добавить какой-то этот видео-рендер схожий с тем, как у ВМП
    Этот видеорендерер называется Enhanced Video Renderer (который без приписок).

    Всего записей: 10450 | Зарегистр. 05-02-2003 | Отправлено: 21:13 13-03-2018
    judelaw

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    brRamires
    Цитата:
    Что-то вроде  
    А говорил не шарю )))
     
    так вроде работает, но надо искать косяки

    Код:
     
    BOOL CPlayerPlaylistBar::PreTranslateMessage(MSG* pMsg)
    {
        if (IsWindow(pMsg->hwnd) && IsVisible() && pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST) {
            switch (pMsg->message)
            {
            case WM_KEYDOWN:
                switch (pMsg->wParam)
                {
                case VK_RETURN:
                    if (m_list.GetSelectedCount() == 1) {
                        const int item = m_list.GetNextItem(-1, LVNI_SELECTED);
     
                        m_pl.SetPos(FindPos(item));
                        m_pMainFrame->OpenCurPlaylistItem();
                        AfxGetMainWnd()->SetFocus();
     
                        return TRUE;
                    }
                    break;
                case _T('A'):
                    if (GetKeyState(VK_CONTROL) < 0) {
                        m_list.SetItemState(-1, LVIS_SELECTED, LVIS_SELECTED);
                    }
                    break;
                case _T('I'):
                    if (GetKeyState(VK_CONTROL) < 0) {
                        for (int nItem = 0; nItem < m_list.GetItemCount(); nItem++) {
                            m_list.SetItemState(nItem, ~m_list.GetItemState(nItem, LVIS_SELECTED), LVIS_SELECTED);
                        }
                    }
                    break;
                case VK_UP:
                case VK_DOWN:
                case VK_HOME:
                case VK_END:
                case VK_PRIOR:
                case VK_NEXT:
                case VK_DELETE:
                    break;
                default:
                    GetParentFrame()->PreTranslateMessage(pMsg);
                    return TRUE;
                }
            }
     
            if (IsDialogMessage(pMsg)) {
                return TRUE;
            }
        }
     
        return CSizingControlBarG::PreTranslateMessage(pMsg);
    }
     


    Всего записей: 2830 | Зарегистр. 22-09-2009 | Отправлено: 00:58 14-03-2018
    Aleksoid1978



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    judelaw
    brRamires
    Да нам не надо все передавать в основное окно, зачем.
     
    Добавлено:
    HorrificDoom
    Выложи пример файла с которым именно виснет, что-то не верится. Тупить перемотка может.
     
    Добавлено:
    judelaw
    Не работает.
    GetParentFrame()->PreTranslateMessage(pMsg) - не обрабатывает горячие клавиши.

    ----------
    AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /Patriot 32Gb@3200 /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9203 | Зарегистр. 11-05-2006 | Отправлено: 01:20 14-03-2018
    kirsha

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleksoid1978

    Цитата:
     По делу - не надо ломать никакой логики. Все работает как и задумано, и уже не один год.  

    И всё это время вынуждены "страдать".
    Из-за пульта на Space получилось назначить только паузу, что бывает очень неудобно в некоторых случаях.
    Наконец-то подняли этот вопрос. На такую смелость я даже и не решался.
     
    Вот ещё картинка, поясняющая навигацию на некоторых TS.
    VLS вообще не дёргает винт, LAV Splitter заметно лучше ведёт, а MPC-BE, такое впечатление, при прыжках на таймлайне перечитывает файл с самого начала.

    Всего записей: 711 | Зарегистр. 05-12-2008 | Отправлено: 09:48 14-03-2018
       

    Страницы: 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

    Компьютерный форум Ru.Board » Компьютеры » Программы » Media Player Classic - Black Edition / MPC-BE (часть 3)
    Maz (13-06-2018 23:10): Media Player Classic - Black Edition / MPC-BE (часть 4)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru