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?