didl toevoegingen
This commit is contained in:
@@ -8,6 +8,7 @@ the generic service escape hatch is used.
|
||||
|
||||
```text
|
||||
upnp/main.rkt generic public interface
|
||||
upnp/didl-lite.rkt DIDL-Lite metadata generation
|
||||
upnp/media-renderer.rkt high-level renderer operations
|
||||
upnp/media-server.rkt high-level MediaServer browser
|
||||
upnp/services/av-transport.rkt playback transport
|
||||
@@ -135,6 +136,17 @@ Normal playback code need not mention AVTransport or SOAP:
|
||||
(require upnp
|
||||
upnp/media-renderer)
|
||||
|
||||
(define files
|
||||
(start-media-file-server
|
||||
"http://10.7.3.118:8080/media/"
|
||||
#:listen-ip "10.7.3.118"))
|
||||
|
||||
(define uri
|
||||
(media-file-server-publish!
|
||||
files
|
||||
"C:/muziek/test.flac"
|
||||
"test.flac"))
|
||||
|
||||
(define denon
|
||||
(car (query-media-renderers
|
||||
#:interface "10.7.3.118"
|
||||
@@ -142,7 +154,13 @@ Normal playback code need not mention AVTransport or SOAP:
|
||||
|
||||
(media-renderer-play-uri!
|
||||
denon
|
||||
"http://10.7.3.118:8080/media/test.flac")
|
||||
uri
|
||||
#:metadata
|
||||
(media-file-server-didl-lite
|
||||
files
|
||||
uri
|
||||
#:title "Test track"
|
||||
#:duration 639))
|
||||
|
||||
(media-renderer-seek! denon 120)
|
||||
(media-renderer-set-volume! denon 30)
|
||||
@@ -151,9 +169,12 @@ Normal playback code need not mention AVTransport or SOAP:
|
||||
`query-media-renderers` returns all UPnP MediaRenderers by default. Add
|
||||
`#:dlna-only? #t` to retain only devices advertising `X_DLNADOC`.
|
||||
|
||||
A later HTTP media-serving module can implement `play-file!` by publishing a
|
||||
local file through Racket's web-server framework and passing the resulting URL
|
||||
to `media-renderer-play-uri!`.
|
||||
For local files, `media-file-server-publish!` supplies a byte-range-capable
|
||||
HTTP URL. `media-file-server-didl-lite` generates matching DIDL-Lite metadata,
|
||||
including MIME type, file size, duration, and `DLNA.ORG_OP=01`. Some renderers,
|
||||
including certain Denon models, only advertise `Seek` after receiving this
|
||||
metadata. Generate and pass matching metadata for both the current URI and a
|
||||
preloaded next URI.
|
||||
|
||||
## Documentation and tests
|
||||
|
||||
|
||||
Reference in New Issue
Block a user