{"id":15194362,"url":"https://github.com/hendriks73/audioplayer4j","last_synced_at":"2025-10-27T21:32:02.272Z","repository":{"id":57727415,"uuid":"428266517","full_name":"hendriks73/audioplayer4j","owner":"hendriks73","description":"Java Audioplayer","archived":false,"fork":false,"pushed_at":"2023-05-10T15:02:52.000Z","size":3316,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"dev","last_synced_at":"2025-02-01T08:51:13.737Z","etag":null,"topics":["audio","flac","linux","macos","mp3","player","windows"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hendriks73.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-15T13:04:09.000Z","updated_at":"2025-01-25T07:27:01.000Z","dependencies_parsed_at":"2022-09-16T15:30:19.051Z","dependency_job_id":null,"html_url":"https://github.com/hendriks73/audioplayer4j","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hendriks73%2Faudioplayer4j","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hendriks73%2Faudioplayer4j/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hendriks73%2Faudioplayer4j/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hendriks73%2Faudioplayer4j/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hendriks73","download_url":"https://codeload.github.com/hendriks73/audioplayer4j/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238561636,"owners_count":19492756,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","flac","linux","macos","mp3","player","windows"],"created_at":"2024-09-27T22:43:38.048Z","updated_at":"2025-10-27T21:31:56.842Z","avatar_url":"https://github.com/hendriks73.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![LGPL 2.1](https://img.shields.io/badge/License-LGPL_2.1-blue.svg)](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.tagtraum/audioplayer4j/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.tagtraum/audioplayer4j)\n[![Build and Test](https://github.com/hendriks73/audioplayer4j/workflows/Build%20and%20Test/badge.svg)](https://github.com/hendriks73/audioplayer4j/actions)\n[![CodeCov](https://codecov.io/gh/hendriks73/audioplayer4j/branch/main/graph/badge.svg?token=IBVAHZW5DZ)](https://codecov.io/gh/hendriks73/audioplayer4j/branch/main)\n\n\n# audioplayer4j\n\nSimply plays audio.\n                \n\n## Usage\n\nTo play an audio file, simply call the\n[AudioPlayer's](https://hendriks73.github.io/audioplayer4j/tagtraum.audioplayer4j/com/tagtraum/audioplayer4j/AudioPlayer.html)\n[play(uri)](https://hendriks73.github.io/audioplayer4j/tagtraum.audioplayer4j/com/tagtraum/audioplayer4j/AudioPlayer.html#play(java.net.URI))\nmethod:\n\n```java\nAudioPlayer.play(someURI);\n```\n\nPlayback will start asynchronously.\n\nHere's a more comprehensive example, using the\n[AudioPlayerFactory](https://hendriks73.github.io/audioplayer4j/tagtraum.audioplayer4j/com/tagtraum/audioplayer4j/AudioPlayerFactory.html):\n\n```java\nimport com.tagtraum.audioplayer4j.*;\nimport java.util.concurrent.CountDownLatch;\nimport java.net.URI;\n\npublic class AudioplayerExample {\n    \n    public static void main(final String[] args) throws Exception {\n        \n        // open a player object for the given URI\n        // do so, with try-resource management        \n        try (final AudioPlayer player = AudioPlayerFactory.open(new URI(args[0]))) {\n\n            // add a listener, so that we are notified,\n            // once playback has stopped.            \n            final CountDownLatch finished = new CountDownLatch(1);\n            player.addAudioPlayerListener(new AudioPlayerListener() {\n                @Override\n                public void started(final AudioPlayer audioPlayer, final URI uri) {\n                }\n\n                @Override\n                public void finished(final AudioPlayer audioPlayer, final URI uri, final boolean endOfMedia) {\n                    finished.countDown();\n                }\n            });\n\n            // start playback        \n            player.play();\n            \n            // wait until playback has finished.        \n            finished.await();\n        }\n    }\n}\n```\n\nIf you'd like to be notified about playback process, pause events etc.,\njust add a corresponding `PropertyListener`. Note that all events are\nposted on the event dispatch thread (EDT).\n\n\n## Installation\n\n*audioplayer4j* is released via [Maven](https://maven.apache.org).\nYou can install it using the following dependency:\n\n```xml\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.tagtraum\u003c/groupId\u003e\n        \u003cartifactId\u003eaudioplayer4j-complete\u003c/artifactId\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\nWithout further packages, *audioplayer4j* works very well on macOS and,\nbut has only mediocre codec (audio format) support on other platforms.\nThat said, *audioplayer4j* plays very well with others. You can\nplay a wide variety of audio formats by installing a suitable\n`javax.sound.sampled` package or JavaFX modules.\nFor details, please see below.\n\n## Leveraging javax.sound.sampled Packages \n                                     \nThe Java sampled sound API uses a service provider architecture, which can be implemented\nby third parties (see [javax.sound.sampled.spi](https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/javax/sound/sampled/spi/package-summary.html)).\nAny such providers may be picked up and used for playback by *audioplayer4j*.\n\nExamples are:\n\n- [FFSampledSP](https://github.com/hendriks73/ffsampledsp), an FFmpeg based provider (Ubuntu, macOS, Windows)\n- [CASampledSP](https://github.com/hendriks73/casampledsp), a Core Audio-based provider (macOS only)\n\nFor example, to add *FFSampledSP*, simply use this dependency:\n\n```xml\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.tagtraum\u003c/groupId\u003e\n        \u003cartifactId\u003effsampledsp-complete\u003c/artifactId\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n## Taking Advantage of JavaFX\n\nIn order to allow *audioplayer4j* to utilize JavaFX libraries,\nyou may also want to add the following dependencies:\n\n```xml\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.openjfx\u003c/groupId\u003e\n        \u003cartifactId\u003ejavafx-base\u003c/artifactId\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.openjfx\u003c/groupId\u003e\n        \u003cartifactId\u003ejavafx-swing\u003c/artifactId\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.openjfx\u003c/groupId\u003e\n        \u003cartifactId\u003ejavafx-media\u003c/artifactId\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.openjfx\u003c/groupId\u003e\n        \u003cartifactId\u003ejavafx-graphics\u003c/artifactId\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n## Java Module\n\n*audioplayer4j* is shipped as a Java module\n(see [JPMS](https://en.wikipedia.org/wiki/Java_Platform_Module_System))\nwith the name `tagtraum.audioplayer4j`.\n\n\n## API\n\nYou can find the complete API [here](https://hendriks73.github.io/audioplayer4j/).\n                       ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhendriks73%2Faudioplayer4j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhendriks73%2Faudioplayer4j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhendriks73%2Faudioplayer4j/lists"}