pass MIME type and seekable flag to DLNA players
This commit is contained in:
@@ -183,6 +183,7 @@ const (
|
||||
|
||||
type MediaItemMetadata struct {
|
||||
Type MediaItemType
|
||||
MIMEType string
|
||||
ID string
|
||||
Name string
|
||||
Artists []string
|
||||
@@ -204,6 +205,7 @@ func (t *Track) Metadata() MediaItemMetadata {
|
||||
}
|
||||
return MediaItemMetadata{
|
||||
Type: MediaItemTypeTrack,
|
||||
MIMEType: t.ContentType,
|
||||
ID: t.ID,
|
||||
Name: t.Title,
|
||||
Artists: t.ArtistNames,
|
||||
|
||||
@@ -140,6 +140,14 @@ func (p *playbackEngine) registerPlayerCallbacks(pl player.BasePlayer) {
|
||||
})
|
||||
}
|
||||
|
||||
func (p *playbackEngine) unregisterPlayerCallbacks(pl player.BasePlayer) {
|
||||
pl.OnPaused(nil)
|
||||
pl.OnPlaying(nil)
|
||||
pl.OnStopped(nil)
|
||||
pl.OnSeek(nil)
|
||||
pl.OnTrackChange(nil)
|
||||
}
|
||||
|
||||
func (p *playbackEngine) SetPlayer(pl player.BasePlayer) error {
|
||||
// even if we don't successfully change players,
|
||||
// make sure UI updates if needed (eg enabling cast button)
|
||||
@@ -162,6 +170,7 @@ func (p *playbackEngine) SetPlayer(pl player.BasePlayer) error {
|
||||
p.pendingPlayerChangeTimePos = stat.TimePos
|
||||
p.pendingPlayerChange = true
|
||||
}
|
||||
p.unregisterPlayerCallbacks(p.player)
|
||||
if err := p.player.Stop(true); err != nil {
|
||||
log.Printf("failed to stop player: %v", err)
|
||||
}
|
||||
|
||||
@@ -156,8 +156,10 @@ func (d *DLNAPlayer) PlayFile(urlstr string, meta mediaprovider.MediaItemMetadat
|
||||
key := d.addURLToProxy(urlstr)
|
||||
|
||||
media := avtransport.MediaItem{
|
||||
URL: d.urlForItem(key),
|
||||
Title: meta.Name,
|
||||
URL: d.urlForItem(key),
|
||||
Title: meta.Name,
|
||||
ContentType: meta.MIMEType,
|
||||
Seekable: true,
|
||||
}
|
||||
|
||||
if err := d.playAVTransportMedia(&media); err != nil {
|
||||
@@ -224,8 +226,10 @@ func (d *DLNAPlayer) SetNextFile(url string, meta mediaprovider.MediaItemMetadat
|
||||
|
||||
key := d.addURLToProxy(url)
|
||||
media = &avtransport.MediaItem{
|
||||
URL: d.urlForItem(key),
|
||||
Title: meta.Name,
|
||||
URL: d.urlForItem(key),
|
||||
ContentType: meta.MIMEType,
|
||||
Title: meta.Name,
|
||||
Seekable: true,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user