Giter VIP home page Giter VIP logo

dlna_player's Introduction

dlna_player

A DLNA (Digital Living Network Alliance) music player made with Flutter.

Overview

The idea for this app came through the lack of a simple DLNA player for linux. Nevertheless, this app works on Windows, MacOS, iOS and Android as well.

This app been tested so far with MiniDLNA and Jellyfin. Both DLNA server were installed on an OpenMediaVault NAS server. MiniDLNA was installed direct while Jellyfin was running in a Docker container.

The displayed categories are depending on the used DLNA server. That's why the categories are different on the screenshots. The installed DLNA server were using German, so some texts are in German even though the app language was set to English.

The implemented search functionality is not searching on the server. Instead, the received lists (tracks, artists, albums etc.) are searched/filtered on the client.

Features

  • Dart 3 and Flutter 3.10 compatible
  • several themes (Material 3)
  • two player widget sizes (click on player title to change)
  • localization (English and German)
  • works on Android, iOS, Linux, MacOS and Windows
  • lyrics (via genius.com - see also below: Build release version)

Screenshots

MacOS

Android

Acknowledgements

This project would be impossible without the following packages:

upnp2 and audioplayers do the heavy lifting of handling the UPNP protocol and playing audio files. The handling of the media keys is done by hid_listener.

Tips and tricks

Update logo etc.

When the logo has been changed, run the following command

> flutter pub run icons_launcher:create

to recreate all logo images for all platforms.

Localization

The app uses the Intl package to maintain different localizations. Run the following command, if you change the content of the ./lib/l10n/*.arb files:

> flutter gen-l10n

This will update the files in .dart_tool/flutter_gen/gen_l10n.

Info

This command is also necessary, when the app is built for the first time.

Build release version

The access of the genius api at api.genius.com needs a token. Therefore, you have to supply this token when you compile your own version:

> flutter build macos --dart-define="GENIUS_TOKEN=YOUR-OWN-TOKEN"

dlna_player's People

Contributors

aluedtke7 avatar

Stargazers

無名路人 avatar X avatar

Watchers

 avatar

Forkers

yangdong123

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.