On this page:
query-media-renderers
get-media-renderer
media-renderer?
media-renderer-name
media-renderer-address
media-renderer-manufacturer
media-renderer-model
media-renderer-dlna?
4.1 Playback
media-renderer-play-resource!
media-renderer-play-uri!
media-renderer-play!
media-renderer-next-uri-supported?
media-renderer-set-next-uri!
media-renderer-set-next-resource!
media-renderer-pause!
media-renderer-stop!
media-renderer-seek!
media-renderer-status
media-renderer-position
transport-position-track
transport-position-seconds
transport-position-duration
transport-position-uri
4.2 Volume and mute
media-renderer-volume
media-renderer-set-volume!
media-renderer-muted?
media-renderer-set-muted!
9.2.900

4 Media Renderers🔗ℹ

 (require racket-upnp/media-renderer) package: racket-upnp

This module provides a device-oriented interface for UPnP and DLNA media renderers. It hides the AVTransport and RenderingControl services used for common playback and volume operations.

procedure

(query-media-renderers [#:interface interface 
  #:dns? dns? 
  #:dlna-only? dlna-only?]) 
  (listof media-renderer?)
  interface : (or/c #f string?) = #f
  dns? : boolean? = #f
  dlna-only? : boolean? = #f
Discovers media renderers. When dlna-only? is true, only devices that advertise a DLNA document identifier are returned.

procedure

(get-media-renderer filter-name)  (or/c #f media-renderer?)

  filter-name : string?
Returns the first discovered renderer whose name contains filter-name, ignoring case, or #f when no renderer matches.

procedure

(media-renderer? value)  boolean?

  value : any/c
Returns #t, if the value is a media-renderer.

procedure

(media-renderer-name renderer)  string?

  renderer : media-renderer?
Returns the friendly name advertised by the media renderer.

procedure

(media-renderer-address renderer)  string?

  renderer : media-renderer?
Returns the network address from which the renderer was discovered.

procedure

(media-renderer-manufacturer renderer)  (or/c #f string?)

  renderer : media-renderer?
Returns the renderer manufacturer, or #f when it was not included in the UPnP device description.

procedure

(media-renderer-model renderer)  (or/c #f string?)

  renderer : media-renderer?
Returns the renderer model name, or #f when it was not included in the UPnP device description.

procedure

(media-renderer-dlna? renderer)  boolean?

  renderer : media-renderer?

4.1 Playback🔗ℹ

procedure

(media-renderer-play-resource! renderer 
  uri 
  [#:protocol-info protocol-info 
  #:mime-type mime-type 
  #:title title 
  #:artist artist 
  #:album album 
  #:genre genre 
  #:year year 
  #:track track 
  #:duration duration 
  #:size size]) 
  any
  renderer : media-renderer?
  uri : string?
  protocol-info : (or/c #f string?) = #f
  mime-type : (or/c #f string?) = #f
  title : string? = "Media"
  artist : (or/c #f string?) = #f
  album : (or/c #f string?) = #f
  genre : (or/c #f string?) = #f
  year : (or/c #f exact-nonnegative-integer?) = #f
  track : (or/c #f exact-nonnegative-integer?) = #f
  duration : (or/c #f number?) = #f
  size : (or/c #f exact-nonnegative-integer?) = #f
Resolves missing DLNA HTTP capabilities, generates DIDL-Lite for the resource, and starts playback. A wildcard fourth field in protocol-info is replaced with the server’s contentFeatures.dlna.org response when available. Successful capability responses are cached by URI.

procedure

(media-renderer-play-uri! renderer    
  uri    
  [#:metadata metadata    
  #:next-uri next-uri    
  #:next-metadata next-metadata])  any
  renderer : media-renderer?
  uri : string?
  metadata : string? = ""
  next-uri : (or/c #f string?) = #f
  next-metadata : string? = ""
Sets uri as the current resource and starts playback.

Supply DIDL-Lite in metadata. Although AVTransport permits an empty string, some renderers do not enable seeking without resource metadata. Use media-file-server-didl-lite for resources published by this package.

When next-uri is supplied, it is installed with SetNextAVTransportURI before playback starts. A supporting renderer can open and buffer the next resource while the current resource is playing, allowing a gapless or near-gapless transition. Supply matching DIDL-Lite in next-metadata.

procedure

(media-renderer-play! renderer)  any

  renderer : media-renderer?
Resumes playback after it has been paused.

procedure

(media-renderer-next-uri-supported? renderer)  boolean?

  renderer : media-renderer?
Reports whether the renderer advertises the optional SetNextAVTransportURI action.

procedure

(media-renderer-set-next-uri! renderer    
  uri    
  [#:metadata metadata])  any
  renderer : media-renderer?
  uri : string?
  metadata : string? = ""
Sets the resource that follows the currently playing resource. The action describes one next resource, not a complete queue. After playback advances to that resource, call this function again to preload the following track. Use metadata that describes uri, not the current resource.

procedure

(media-renderer-set-next-resource! 
  renderer 
  uri 
  [#:protocol-info protocol-info 
  #:mime-type mime-type 
  #:title title 
  #:artist artist 
  #:album album 
  #:genre genre 
  #:year year 
  #:track track 
  #:duration duration 
  #:size size]) 
  any
  renderer : media-renderer?
  uri : string?
  protocol-info : (or/c #f string?) = #f
  mime-type : (or/c #f string?) = #f
  title : string? = "Media"
  artist : (or/c #f string?) = #f
  album : (or/c #f string?) = #f
  genre : (or/c #f string?) = #f
  year : (or/c #f exact-nonnegative-integer?) = #f
  track : (or/c #f exact-nonnegative-integer?) = #f
  duration : (or/c #f number?) = #f
  size : (or/c #f exact-nonnegative-integer?) = #f
Resolves and describes an external resource like media-renderer-play-resource!, then installs it as the next URI.

procedure

(media-renderer-pause! renderer)  any

  renderer : media-renderer?

procedure

(media-renderer-stop! renderer)  any

  renderer : media-renderer?

procedure

(media-renderer-seek! renderer seconds)  any

  renderer : media-renderer?
  seconds : exact-nonnegative-integer?

procedure

(media-renderer-status renderer)  symbol?

  renderer : media-renderer?

procedure

(media-renderer-position renderer)  transport-position?

  renderer : media-renderer?

procedure

(transport-position-seconds position)  (or/c #f number?)

  position : transport-position?

procedure

(transport-position-duration position)  (or/c #f number?)

  position : transport-position?

procedure

(transport-position-uri position)  (or/c #f string?)

  position : transport-position?

4.2 Volume and mute🔗ℹ

procedure

(media-renderer-volume renderer)  exact-nonnegative-integer?

  renderer : media-renderer?

procedure

(media-renderer-set-volume! renderer    
  volume)  any
  renderer : media-renderer?
  volume : exact-nonnegative-integer?

procedure

(media-renderer-muted? renderer)  boolean?

  renderer : media-renderer?

procedure

(media-renderer-set-muted! renderer muted?)  any

  renderer : media-renderer?
  muted? : boolean?