Skip to content

Vinicius-de-Morais/web-radio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Web-Radio

Web Radio para tocar músicas online

Como rodar o projeto 🚀

Pré requisitos

⚠️ IMPORTANTE: FFmpeg (OBRIGATÓRIO)

Este projeto depende do FFmpeg E FFprobe para decodificar e transcodificar os arquivos de áudio. Você precisa instalar o FFmpeg E e adicionar a pasta bin dele às variáveis de ambiente do sistema (PATH), ou o programa NÃO FUNCIONARÁ.

📥 Clonando o repositório

    git clone https://github.com/Vinicius-de-Morais/web-radio.git
    cd web-radio

▶️ Rodando o projeto

    cargo run

A aplicação estará disponível no seguinte endereço local: http://127.0.0.1:6969

Diagrama

Texto alternativo

Requisitos

  • Ponteiro de Execução

    Basicamente ter uma maneira timebased de saber em que musica estamos e em que ponto da musica estamos

  • Processamento sob demanda

    Não disperdiçar recursos reproduzindo a musica sem o cliente estar conectado

  • Multiplos clientes

    Aplicar lógica de multithreding para suportar múltiplas conexões simultâneas

  • Gerenciamento de espectadores

    Armazenar os subscribers de cada rádio podendo exibir quantidade de user online e likes nas radios

  • Encoding de diferentes formatos

    Suportar diversos formatos para encodar e enviar para os clientes, inicialmente pensado mp3, wave e opus.

  • Compressão na stream

    XD

  • Histórico da rádio

    Manter um snapshot de radio, mostrando que musicas tocaram hoje

  • Gerenciamento das faixas de musica

    Gerenciar as musicas mais curtidas e com o maior pico de espectadores.


Padrões GOF escolhidos

Observer

Aqui pode ser utilizado a noção de subscribers de uma estação, que seriam as pessoas q estão ouvindo aquela estação.

Daria para deixar um observer também vendo a musica atual e verificando os likes ou coisas assim n sei.

Memento

Utilizado para o armazenamento de estado da radio, usaremos para verificar o que ja tocou e quantos user ficaram na ultima musica ou coisa assim, faremos snapshots por musica tocada.

Vai ser usada principalmente na parte de ver o que ja tocou hoje.

Iterator

Utilizaremos para o comportamento da lista de musica, podendo iterar sobre elas justamente usando a ideia de Next() e HasMore().

Adapter

A estrutura que ira transfomar o som de entrada em uma stream de saida

Singleton

Será a estrutura do rádio que ira controlar todas as outras, basicamente ele q vai ser o objeto master de controle, tudo passa por ele necessáriamente.

State

Gerenciamento de estádo da radio e da estação em si

Strategy

Basicamente a estará nas diferentes implementações de coding e deconging das faixas de audio

Mediator

Mediator vai ser a radio q vai basicamente enviar o comando para as estações

Command

Definição dos comandos do radio Play, Stop, Like, etc

Bridge

Isso o rust ja faz por padrão

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6