Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

LealLara/RadioStream

Repository files navigation

RadioStream API

API REST desenvolvida em C# .NET para simular uma rádio online com fila de reprodução, processamento em background e streaming de áudio, incluindo uma interface web simples para reprodução.


Funcionalidades

  • Adicionar músicas à fila de reprodução
  • Processamento automático das músicas (BackgroundService)
  • Controle de estado da rádio (Playing, Paused, Stopped)
  • Streaming de áudio via HTTP
  • Listagem de músicas disponíveis
  • Interface web para reprodução (player)

Arquitetura

O projeto segue uma arquitetura em camadas baseada em separação de responsabilidades:

  • Domain → Entidades e regras básicas
  • Application → Serviços e lógica de negócio
  • Infrastructure → Implementações técnicas (fila em memória)
  • API → Entrada HTTP, controllers e arquivos estáticos

Tecnologias utilizadas

  • .NET 8
  • ASP.NET Core Web API
  • BackgroundService
  • ConcurrentQueue
  • Swagger
  • HTML + JavaScript (player web)

Como executar

dotnet run

A API estará disponível em:

https://localhost:7011/swagger

Interface Web (Player)

Acesse o player diretamente no navegador:

https://localhost:7011/index.html

Funcionalidades:

  • Selecionar músicas
  • Reproduzir áudio diretamente no browser
  • Integração com endpoints da API

Endpoints

POST /radio/enqueue

Adiciona uma música à fila da rádio.

GET /radio/status

Retorna o estado atual da rádio.

GET /songs

Retorna a lista de músicas disponíveis.

GET /stream/{fileName}

Realiza o streaming do arquivo de áudio.

Exemplo:

GET /stream/song1.mp3

Exemplo de resposta /songs

[
 {
 "title": "Lo-fi Beat",
 "artist": "Free Audio",
 "filePath": "song1.mp3",
 "duration": 10
 },
 {
 "title": "Chill Vibes",
 "artist": "Free Audio",
 "filePath": "song2.mp3",
 "duration": 8
 }
]

Estrutura de arquivos

RadioStream.Api/
 ├── Controllers/
 ├── Workers/
 ├── Program.cs
 └── wwwroot/
 ├── index.html
 └── songs/
 ├── song1.mp3
 ├── song2.mp3

Arquivos de áudio

Os arquivos de áudio utilizados são royalty-free e incluídos apenas para fins de demonstração.


Diferenciais do projeto

  • Processamento assíncrono com BackgroundService
  • Fila em memória com ConcurrentQueue
  • Streaming HTTP com suporte a range
  • Interface web integrada à API
  • Arquitetura limpa e escalável

Autor

Projeto desenvolvido para fins de estudo e portfólio.

About

Esta aplicação é um mini Spotify backend simplificado: Uma API que: Gerencia músicas Cria uma "rádio" Faz streaming de áudio Permite tocar, pausar, pular músicas

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /