Skip to content

Methods & Properties

Methods

Shared (all components)

MethodDescription
play()Start playback
pause()Pause playback
setTracks(tracks: TracksInput)Set playlist programmatically
setStrings(s: Partial<Strings>)Override UI strings
loadPlaylist(url: string)Fetch and parse an M3U playlist

Video-only

MethodDescription
requestFullscreen()Enter fullscreen mode
requestPiP()Enter Picture-in-Picture mode

Properties

Shared (all components)

PropertyTypeAccessDescription
currentTrackTrack | nullgetCurrently playing track object
currentTimenumberget/setPlayback position in seconds
durationnumbergetTotal duration in seconds
pausedbooleangetWhether playback is paused

Video-only

PropertyTypeAccessDescription
playbackRatenumberget/setPlayback speed (0.5 – 2.0)
volumenumberget/setVolume level (0.0 – 1.0)
mutedbooleanget/setMute state

Usage Examples

Playback control

js
const player = document.querySelector('py-audio')

player.play()
player.pause()

console.log(player.paused)     // false
console.log(player.currentTime) // 12.5
console.log(player.duration)   // 3600

Seeking

js
player.currentTime = 60  // jump to 1:00

Programmatic tracks

js
player.setTracks([
  { name: 'Chapter 1', time: '0:00' },
  { name: 'Chapter 2', time: '5:30' },
  { name: 'Chapter 3', time: '12:00' },
])

Multi-file:

js
player.setTracks([
  {
    name: 'Episode 1',
    src: '/audio/ep1.mp3',
    chapters: [
      { name: 'Intro', time: '0:00' },
      { name: 'Main',  time: '3:00' },
    ],
  },
  {
    name: 'Episode 2',
    src: '/audio/ep2.mp3',
  },
])

String overrides

js
player.setStrings({
  nowPlaying: 'Đang phát',
  playlist: 'Danh sách',
  trackCount: '{count} bài',
})

Load M3U playlist

js
player.loadPlaylist('https://example.com/playlist.m3u')

Video properties

js
const video = document.querySelector('py-video')

video.volume = 0.5
video.muted = false
video.playbackRate = 1.5

video.requestFullscreen()
video.requestPiP()

Current track info

js
const track = player.currentTrack
if (track) {
  console.log(track.name)
}