본문으로 건너뛰기
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(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

이 스킬의 문제 신고