XMMS2 - XMMS2

XMMS2
XMMS2-Logo-white-128.png
Desenvolvedor (s) Equipe XMMS
Versão estável
0,8 DrO + WIP / 20 de outubro de 2011 ; 9 anos atrás ( 20/10/2011 )
Versão de visualização
0,9 DrP
Repositório Edite isso no Wikidata
Sistema operacional Tipo Unix
Disponível em C
Modelo Tocador de Áudio
Licença LGPL-2.1 ou posterior
Local na rede Internet www.xmms2.org

XMMS2 ( X-platform Music Multiplexing System 2 ) é uma nova geração do reprodutor de áudio XMMS . É um novo design, escrito do zero, separado da base de código XMMS . Enquanto Peter Alm, um dos autores originais do XMMS, foi responsável pelo design e codificação inicial do XMMS2 (final de 2002 ao início de 2003), ele passou a responsabilidade de promover o projeto para Tobias Rundström e Anders Gustafsson. LXMusic, o aplicativo reprodutor de música padrão no LXDE , é um cliente XMMS2.

Conceitos de design

O XMMS2 empresta conceitos dos tocadores de música da era XMMS, como controle de reprodução, lista de reprodução , plug - ins , GUI configurável pelo usuário e adiciona recursos como biblioteca de mídia e design cliente-servidor .

Como o XMMS, o XMMS2 tem uma arquitetura de plug - in ; um tipo de arquitetura modular onde certas funções são delegadas a bibliotecas carregáveis que fornecem funções específicas em tempo de execução . O XMMS reconheceu cinco tipos diferentes de plug-ins:

  • Plugins de entrada para leitura e decodificação de arquivos ou fluxos.
  • Plugins de saída para lidar com a saída de som.
  • Plugins de efeitos para adicionar efeitos aos dados de áudio decodificados, antes de serem produzidos.
  • Plug-ins de visualização para fornecer animações visuais que variam de acordo com o áudio sendo reproduzido.
  • Plug-ins gerais que permitem funções diversas, como controlar o XMMS por meio de um controle remoto infravermelho ou um joystick.

O XMMS2 também reconhece cinco tipos de plug-ins, mas eles executam funções bastante diferentes:

  • Plugins de transporte para leitura de arquivos ou fluxos.
  • Plug-ins decodificadores para decodificar dados lidos por plug-ins de transporte.
  • Plugins de efeitos para adicionar efeitos aos dados de áudio decodificados, antes de serem produzidos.
  • Plugins de saída para lidar com a saída de som.
  • Plugins da lista de reprodução para lidar com a importação e exportação de dados da lista de reprodução.

Ao contrário do XMMS2, o XMMS não tinha biblioteca onde armazenava informações sobre a coleção de mídia de um usuário. Os únicos recursos de mídia que o XMMS conhecia eram sua lista de reprodução. Começando por volta de 2000, jogadores como Winamp e SoundJam MP começaram a implementar recursos de banco de dados simples que permitem ao jogador "lembrar" onde a mídia do usuário está localizada, bem como metadados armazenados em cache nos arquivos, como artista, título, data adicionada e reprodução contar.

A biblioteca de mídia do XMMS2 está bem integrada à lista de reprodução. Essa integração significa que cada arquivo ou fluxo adicionado à lista de reprodução tem seus metadados automaticamente armazenados em cache pela biblioteca de mídia. Isso acontece apenas uma vez para cada URL exclusivo, portanto, os metadados não são lidos novamente se já existirem na biblioteca. Além dos metadados, a biblioteca de mídia também pode armazenar e recarregar listas de reprodução de maneira rápida e eficiente, tornando a coleção de músicas do usuário acessível em um único lugar.

Um recurso do XMMS2 que raramente foi implementado em reprodutores de mídia é sua arquitetura cliente-servidor. O XMMS2 permite que o usuário escolha entre uma série de implementações de interface para pesquisar, selecionar e reproduzir mídia e, em seguida, fechar a interface enquanto o áudio é reproduzido "em segundo plano". A interface pode ser reaberta a qualquer momento para uso posterior. Outros reprodutores com recursos semelhantes no * nix incluem o Music Player Daemon e o Music on Console .

O design

Quando concebido, o XMMS2 era simplesmente uma biblioteca compartilhada . Ou seja, o XMMS2 seria um código de back-end para cuidar da mecânica de decodificação e reprodução de fluxos de áudio, exigindo ser vinculado a um programa compilado que fornecesse uma interface de usuário. Esse conceito foi posteriormente expandido em um modelo cliente-servidor para permitir um acoplamento mais flexível entre o front-end e o back-end. As vantagens desta abordagem são:

  • Isso permite que qualquer cliente compatível se conecte e controle uma única instância do daemon XMMS2 .
    • Os clientes podem oferecer vários tipos de interfaces de usuário - gráficas ou baseadas em texto, implementadas usando vários kits de ferramentas, integradas a vários ambientes de desktop .
    • Os desenvolvedores do cliente podem se concentrar em melhorar a usabilidade de sua interface e não se preocupar com o código de reprodução.
  • O uso de soquetes TCP também permite que os usuários controlem remotamente daemons XMMS2 em uma rede TCP / IP.

Embora a arquitetura de plug-in do XMMS permitisse que fosse bastante extensível, era ineficiente em certos aspectos; O XMMS2 busca melhorar isso.

  • O XMMS possui plug-ins de entrada que cuidam da leitura de dados e decodificação para áudio. O XMMS2 divide isso em um estágio de transporte e um estágio de decodificação, de modo que um único plug-in de transporte pode fornecer dados de qualquer tipo para qualquer plug-in decodificador (como um plug-in HTTP lendo dados mp3 de um site da web).
  • Plug-ins gerais podem provar ser menos relevantes no XMMS2, já que sua finalidade pode ser servida por clientes independentes, mas a arquitetura do plug-in ainda existirá.
  • O XMMS não pode lidar com formatos de contêiner de maneira geral. A arquitetura XMMS2 facilita a construção de suporte para formatos de contêiner.

XMMS2 e outros projetos

O nome "XMMS2" foi escolhido por Peter Alm e Tobias Rundström quando eles começaram a trabalhar no projeto, evidentemente com a intenção de se tornar o sucessor do XMMS. No entanto, outros desenvolvedores começaram a usar o nome (em 2003) antes de Peter e Tobias lançar seu código:

  • Outro projeto denominado XMMS2, foi descrito como "uma porta Gtk 2 do conhecido xmms." Isso não estava relacionado ao projeto discutido no restante deste artigo. O projeto agora foi descontinuado e removido do GNU Savannah .
  • Uma porta GTK + 2 mais conhecida do XMMS é o Beep Media Player, que às vezes é chamado (erroneamente) de XMMS2. O FAQ do BMP explica a relação desse projeto com o XMMS.

Uma diferença sutil entre os acrônimos XMMS e XMMS2 é que, enquanto XMMS significa X (originalmente para X11 e depois para plataforma cruzada) Sistema MultiMedia , XMMS2 significa sistema de multiplexação musical X (plataforma cruzada) . Esta decisão foi feita para deixar claro que o XMMS2 sempre seria apenas um reprodutor de áudio, e não um reprodutor de multimídia geral com suporte para vídeo.

Referências

links externos