跳到正文
cccskills
免费在 GitHub 公开

hxaudio-player

HX Audio Player for music and sound playback. Use when implementing music playback, sound effects, HXMusic, HXSound, or audio in HXAudioPlayer. Library is in the hxaudio module.

中文简介正在准备中。当前显示原文说明。

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md3.9 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

HX Audio Player

Use HX Audio Player for music and sound in HXAudioPlayer. The library is in the hxaudio module. Targets Android 5.0+ (API 21) and uses modern MediaPlayer/SoundPool initialization paths.

Audio files: Place in res/raw/ (e.g. res/raw/my_song.mp3 → R.raw.my_song).

Music Playback (HXMusic)

Play from resource:

HXMusic.music()
    .load(R.raw.my_song_name)    // [REQUIRED]
    .title("My Awesome Song")    // [OPTIONAL]
    .artist("Mr. Anonymous")     // [OPTIONAL]
    .date("January 1, 1998")     // [OPTIONAL]
    .at(5000)                    // Start position (milliseconds)
    .gapless(true)               // Gapless loop playback
    .looped(true)                // Loop
    .play(this);                 // [REQUIRED]

Shortcut helpers (optional):

HXMusic.play(this, R.raw.my_song_name);            // Play once
HXMusic.play(this, R.raw.my_song_name, true);      // Loop
HXMusic.playGaplessLoop(this, R.raw.my_song_name); // Gapless loop

Play from path/URL:

HXMusic.music()
    .load("https://example.com/song.mp3")
    .title("My Awesome Song")
    .play(this);

Control:

  • HXMusic.pause() — Pause
  • HXMusic.resume(this) — Resume
  • HXMusic.stop() — Stop all
  • HXMusic.isPlaying() — Boolean
  • HXMusic.getPosition() — Current position (milliseconds)
  • HXMusic.setListener(this) — HXMusicListener
  • HXMusic.getStatus() — Status string
  • HXMusic.enable(true) — Enable/disable
  • HXMusic.logging(true) — Log output
  • HXMusic.clear() — Clear when app is terminating

Optional error callback (HXMusicListener):

@Override
public void onMusicError(HXMusicItem music, int what, int extra) {
    // Optional: monitor MediaPlayer failures for diagnostics/recovery logic.
}

Lifecycle (Activity/Fragment):

  • onPause() → HXMusic.pause() — Pause when backgrounded
  • onResume() → HXMusic.resume(this) — Resume when foreground
  • App terminating → HXMusic.clear() — Clean up in onDestroy()

Sound Playback (HXSound)

Play sound:

HXSound.sound()
    .load(R.raw.my_sound_effect)  // [REQUIRED]
    .looped(true)                 // [OPTIONAL]
    .play(this);                  // [REQUIRED]

Shortcut helpers (optional):

HXSound.play(this, R.raw.my_sound_effect);        // Play once
HXSound.play(this, R.raw.my_sound_effect, true);  // Loop

Control:

  • HXSound.pause() — Pause looping sounds
  • HXSound.resume() — Resume
  • HXSound.load(soundResourceList, context) — Pre-load resources
  • HXSound.engines(2) — Retained for compatibility, ignored on API 21+
  • HXSound.enable(true) — Enable/disable
  • HXSound.reinitialize(this) — Deprecated compatibility API for explicit SoundPool reset
  • HXSound.logging(true) — Log output
  • HXSound.clear() — Clear when no longer needed

Module

Add dependency in build.gradle:

implementation project(':hxaudio')

Notes

  • Min SDK: hxaudio targets API 21+; legacy Gingerbread/Honeycomb compatibility branches are removed.
  • Target SDK: Current integration targets API 37.
  • Gapless: .gapless(true) enables seamless loop behavior for looped tracks in the modern playback path.
  • Threading: HXMusic.play()/resume() and HXSound.play()/load()/reinitialize() are dispatched on serialized background executors.
  • Network security: For URL playback, prefer https:// endpoints. On modern targets, cleartext http:// is blocked unless explicitly enabled via usesCleartextTraffic or a networkSecurityConfig exception.
  • Release: Call HXMusic.clear() and HXSound.clear() in onDestroy() when audio is no longer needed.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

报告此技能的问题