Anúncio : Este projeto agora é totalmente substituído por https://github.com/bazzacuda/minimalistmediaplayerx/, que é construído na famosa API MPV, libmpv. ( A versão 3 está fora !! ) Como tal, fornece controle superior sobre sua experiência de áudio e vídeo-playback (e imagens!), Incluindo zoom adequado, panorâmica, rotação, moldura para frente e para trás (!), Legendas, brilho, contraste, gama e saturação, screenshots e edição rápida, além de apoio superior para os mídias mundiais.
A menos que eu obtenha solicitações específicas de alterações (correções de bug), a versão atual desta versão [aqui] do Media Player minimalista (construída no controle ActiveX do Windows Player muito mais limitado da Microsoft) provavelmente será o seu último. Adeus, servo fiel!
Um media player simples, mas muito eficaz, construído em torno do controle ActiveX Windows Media Player.
Minimalist Media Player provides both a minimalist/keyboard-operated user interface (so that on-screen controls don't detract from the video) and the controls with which to view the video in a minimalist window with the option to have no borders, window title bar/caption, progress bar, video timestamp, etc, and with the window resized to fit the video perfectly, eliminating ugly black borders/bands around the video, particularly above and below. Isso fornece uma experiência de visualização imersiva, mesmo quando jogada no modo de janela em vez de em tela cheia.
Embora existam muitos controles a serem lembrados, tentei usar cada letra alfabética intuitivamente. A descrição da ação deve ajudar a associar a ação à carta.
| Controlar | Ação |
|---|---|
ALT-SPACEBAR | Ative o menu do sistema para chegar à caixa Sobre |
ESCape | Saia do modo de tela cheia ou saia do aplicativo se no modo de janela |
SPACEBAR | Faça uma reprodução de pausa/currículo (também clique duas vezes no mouse no vídeo ou no mouse direito de clique) (todas as janelas de mídia, apenas barra de espaço) |
Ctrl-Up Arrow | Aumentar a velocidade de reprodução 10% |
/ | Aumentar a velocidade de reprodução 10% |
Ctrl-Down Arrow | diminuir a velocidade de reprodução 10% |
| diminuir a velocidade de reprodução 10% |
F12 | Arquivo de mídia aberta no editor de vídeo de terceiros (atualmente shotcut) |
= | Copie o nome do arquivo de mídia para a área de transferência |
A | Jogue o primeiro arquivo de mídia na lista de reprodução (Z joga por último) |
B | [B] Faltar/restaurar o progresso [b] ar |
C | Mostre/oculto na tela [c] onTrols e mídia Timestamp (todos os Windows de mídia) |
Ctrl-C | Mostre/oculte todos os controles na tela, registro de mídia e metadados de mídia (todos os Windows de mídia) |
D e DEL | [D] Elete Arquivo de Mídia atual (após a confirmação) |
Ctrl-D and Ctrl-DEL | [D] Elete todos os arquivos na pasta atual do arquivo de mídia (após a confirmação) |
E | [E] Ars - som silencioso/de som |
F | Mostrar/cancelar [f] Modo UllScreen |
G | [G] Tamanho da janela Reaner |
Ctrl-G | Reduza, ou seja, un [g] reener, o tamanho da janela |
H | Posicione a janela [H] orizontalmente (e verticalmente) no centro da tela |
I | Zoom [i] n por 10% da altura e largura do vídeo |
J | ad [j] ust a proporção da janela para corresponder à proporção do vídeo |
K | Marque este arquivo de mídia como [k] eep |
L | Re [l] a lista de arquivos de mídia suportados da pasta atual |
M | [M] Janela Aximize / Restauração |
N | Mi [n] IMIZE Janela para a barra de tarefas do Windows |
O | Zoom [o] ut em 10% da altura e largura do vídeo |
P | Pause o arquivo de mídia e reproduz -o com o [P] Otplayer, se instalado |
Q | Jogue o arquivo de mídia anterior na [q] ueue/playlist |
R | [R] ename o arquivo de mídia atual |
S | Re [s] Tart o arquivo de mídia atual desde o início, também conhecido como [s] Tartover (todas as janelas de mídia) |
T | [T] AB através do arquivo de mídia, um 200º, 100º (padrão), 50, 20 ou 10 de sua duração (Use Shift-Alt, Alt, Shift, Caps Lock to Modify) (todas as janelas de mídia) |
Ctrl-T | [T] AB de volta pelo arquivo de mídia A 100º (padrão), 50, 20 ou 10 de sua duração (use alt, shift, caps bloqueando para modificar) (todas as janelas de mídia) |
TAB | A guia Avançar 1/200, a duração do arquivo de mídia (apenas a janela de mídia selecionada) |
Ctrl-TAB | Guia para trás 1/200 A duração do arquivo de mídia (apenas a janela de mídia selecionada) |
U | [U] NZOOM, ou seja, re-encaixe o vídeo para a janela |
V | maximizar / restaurar [v] iew, o mesmo que [m] |
W | [W] atch o próximo vídeo na lista (ou reproduz o próximo áudio) |
X | e [x] é o aplicativo |
Y | tr [y] fora do arquivo de mídia, amostrando -o em vários estágios |
Z | Jogue o último arquivo de mídia na lista de reprodução (A joga o primeiro) |
Up Arrow | Aumente o volume em 1% |
Down Arrow | diminuir o volume em 1% |
Ctrl-Up Arrow | Aumente a velocidade de reprodução em 10% |
Ctrl-Down Arrow | diminuir a velocidade de reprodução em 10% |
0 | Mostre brevemente a legenda da mídia (todas as janelas de mídia) |
1 | Redefina a velocidade de reprodução para o normal, ou seja, [1] 00% |
2 | redimensione a janela para que duas instâncias do aplicativo possam ser colocadas lado a lado |
4 | redimensione para uma mini-janela no canto superior direito da tela |
Ctrl-4 | Mova para o canto superior direito da tela, mas mantenha o tamanho atual da janela |
5 | Salvar/marcar o registro de mídia atual para um arquivo ini |
6 | Recupere um registro de mídia salvo/marcado como registro de um arquivo ini e continue a reprodução a partir desse ponto |
7 | Exclua qualquer registro de mídia salvo/marcado anteriormente |
8 | Defina o vídeo como 1 pixels maiores que a janela nos quatro lados |
9 | redimensione a janela para a largura do vídeo |
RIGHT ARROW | Avança um quadro |
LEFT ARROW | Agrade -se para trás um quadro |
| Zoom | |
Ctrl-RIGHT ARROW | Ao entrar/sair do zoom, mova o vídeo dentro da janela |
Ctrl-LEFT ARROW | Quando o zoom entrou/saída, mova o vídeo para a esquerda para dentro da janela |
Ctrl-UP ARROW | Ao entrar/sair do zoom, mova o vídeo dentro da janela |
Ctrl-DOWN ARROW | Ao entrar/sair do zoom, mova o vídeo para baixo dentro da janela |
| Adicional | |
Left Click on the window background and hold | A janela pode ser arrastada/reposicionada sem uma barra de título de legenda da janela |
Left double-click video | pausa / retomar reprodução |
Right single-click video | pausa / retomar reprodução |
SHIFT key (either) | Mostre ou oculte a janela de ajuda listando todas as funções do teclado |
Ctrl-9 | Automotores de até 12 instâncias de Minimalist Media Player em uma grade 4x3 (todas as janelas de mídia) |
Ctrl-0 | Feche todas as instâncias em execução de Minimalist Media Player (todas as janelas de mídia) |
Em vez de simplesmente aceitar a palavra da Microsoft de que o controle ActiveX do Windows Media Player suporta sua lista publicada de formatos de arquivo de mídia, testei muitos formatos de arquivo e Minimalist Media Player suporta explicitamente os seguintes formatos e extensões de arquivo:
.wmv .mp4 .avi .flv .mpg .mpeg .mkv .3gp .mov .m4v .vob .ts .webm .divx .m4a .mp3 .wav .aac .m2ts .flac .mts .rm .asf
Mais formatos e extensões de arquivo podem ser facilmente adicionados quando confirmados para funcionar. O WMP tem problemas para reproduzir alguns arquivos FLV que, bizarramente, desaparecem se você renunciar ao arquivo para outro formato, por exemplo, MP4
Para que você possa abrir o projeto e exibir o formulário principal que contém o componente Windows Media Player ActiveX, no menu no Rad Studio / Delphi, você precisará primeiro fazer "Componente / Importar componente ... / Importar ActiveX Control" e selecione o Windows Media Player na lista; O Rad Studio gerará esta unidade automaticamente e instalará o componente na paleta ActiveX.
Em vez de seguir o rebanho, gosto de experimentar maneiras diferentes de layout meu código e torná -lo mais legível e mais facilmente compreendido por quem o procura pela primeira vez e por mim mesmo ao retornar a ele meses ou até anos depois.
Eu uso um Delphi IDE com um editor de código de 180 caracteres. Parece que parece que parecemos não fazer pleno uso de nossos monitores widescreen de alta resolução ao editar o código (Delphi ainda envolve automaticamente as assinaturas de procedimentos de manipulador de eventos na coluna 56, independentemente de como eu defini as margens!), E todos parecemos fazer o arame para exceder os colunas 80, que as datas de volta para a codificina de transmissão para a contratana! : D Então, em primeiro lugar, eu uso pleno de todas as 180 colunas do meu editor.
Não gosto de declarações aninhadas se. Eu acho que eles são feios, difíceis de seguir e muito propensos ao erro humano ao modificá -los/estendê -los. Consequentemente, não uso as instruções se e sempre uso as instruções de caso. Eu os considero muito mais nítidos e mais elegantes, significativamente mais fáceis de seguir e alterar, e muito superiores aos seus equivalentes de aninhados. Não tenho dúvida de que muitos vão discordar.
Gosto de experimentar diferentes maneiras de separar a definição da interface do usuário da lógica geral do programa e como as variáveis em todo o aplicativo devem ser tratadas. Para este projeto, todos os três ainda estão localizados no Main.PAS, mas em um projeto muito maior com várias unidades, a maneira como as separei pode ser adotada, colocando todas elas em unidades separadas. Minhas únicas críticas a Delphi, voltando a V1, é a maneira como (e todos os muitos livros) incentiva todo o código a ser contido nos procedimentos da unidade e do manipulador de eventos do formulário. Levamos muito tempo para finalmente nos afastar daquele paradigma, na minha opinião. Minha opinião é que você deve escrever para que uma interface do usuário totalmente nova possa ser criada e, em seguida, conectada à lógica do programa de back-end.
Apesar de me apaixonar por Delphi desde o momento em que não caixa v1, detesto e detesto começo ... terminar com uma paixão {eu definitivamente tenho inveja de cinta encaracolada}. Como tal, tento encontrar maneiras de fazer meu código parecer muito mais integral, o que inclui não ter todos os termos de uma linha separada, como você verá: D
Todos os métodos que escrevo (em oposição aos procedimentos de manipulador de eventos criados pela IDE etc.) são definidos como funções com um valor de retorno booleano padrão.
Apresento tudo isso apenas como alimento para o pensamento; Não espero que o setor adote de repente minhas estratégias de codificação bizarra. Você pode encontrar uma pouca inspiração para fazer as coisas de maneira um pouco diferente, porém, como tradicionalmente escrito código. E se não, pelo menos você foi avisado!
Minimalist Media Player ? Uma boa pergunta, considerando quantos outros jogadores de mídia do Windows perfeitamente bons existem, incluindo o meu favorito absoluto, o PotPlayer (o VLC foi usurpado!). Este projeto de animais de estimação cresceu de um único requisito: eu tinha 100 de videoclipes pequenos, principalmente engraçados, que acumulava ao longo dos anos, baixados de plataformas de mídia social. Eu precisava de uma maneira de passar rapidamente por toda a minha coleção de clipes e decidir se deve manter ou excluir cada clipe. Isso estava provando ser muito trabalhoso usando um media player padrão, pois a maioria deles não oferece a capacidade de excluir o vídeo que está sendo reproduzido. Eu estava tendo que tocar o clipe, fechá -lo, excluí -lo no Explorer e depois voltar ao media player para continuar com o próximo clipe. Com Minimalist Media Player consegui passar pela minha coleção muito rapidamente, desviar cada vídeo, decidir se deveria ou não e depois passar para o próximo clipe. Ao examinar o código e ver algumas das operações possíveis, lembre -se de que esse aplicativo começou a vida, permitindo que uma coleção inteira de videoclipes seja examinada e mantida ou excluída muito rapidamente, sem ter que sair repetidamente e reiniciar o aplicativo.
Se você achar útil Minimalist Media Player e tiver sugestões de melhorias, estou disposto a considerar implementá -las ou por meio de solicitações de tração. Eu ficaria muito grato se você seguiria minha etiqueta de codificação e tivesse declarações de caso e não em declarações; Eles são realmente fáceis de adotar quando você se acostuma a usá -los exclusivamente no IFS.
Por fim, gostaria de substituir o Windows Media Player como renderizador de vídeo e fazer do Minimalist Media Player um front-end para o MPlayer com seus recursos superiores de manipulação de vídeo, ou possivelmente Microsoft Media Foundation / MFPack (eu apreciaria alguns conselhos sobre qual seria a abordagem mais atualizada). Por exemplo, o WMP realmente não faz o quadro para trás corretamente (ele remonta a 1 segundo e não 1 quadro!), E eu também tive que comentar a instalação de lavagem de vídeo (arrastando o mouse ao longo da barra de progresso para examinar rapidamente um vídeo - o WMP entra em picles direito!). Se você deseja implementar o MPlayer ou o MMF/MFPACK (o que proporcionasse a funcionalidade mais rica daqui para frente) para substituir o WMP, seja meu convidado !!
EDIT: Atualmente, estou testando uma reescrita completa deste projeto com base no MPV! MinimalistMediaPlayerX será liberado na natureza em questão de semanas. Fique atento.
Esta é a minha primeira tentativa de lançar um projeto de código -fonte como código aberto. Por favor, seja gentil: P Se isso correr bem, tenho muito mais projetos que posso estar disposto a liberar na natureza.
Sou eternamente grato a todos os muitos desenvolvedores que me inspiraram a começar a lançar meu código.