Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Získávání obsahů zvukových datastreamů přes API #109

Closed
rzeh4n opened this issue Jul 24, 2014 · 1 comment
Closed

Získávání obsahů zvukových datastreamů přes API #109

rzeh4n opened this issue Jul 24, 2014 · 1 comment
Assignees
Labels
2 návrh na rozšíření Požadavek, který lze realizovat. Realizace podléhá schválení vývojového týmu.

Comments

@rzeh4n
Copy link
Contributor

rzeh4n commented Jul 24, 2014

Zvukové datastreamy (WAV, OGG, MP3) se dají přes API získat stejně, jako všechny ostatní datastreamy:
GET http://localhost:8080/search/api/v5.0/item/<pid>/streams/<stream_id>

Nicméně nejen pro WAV platí, že ty soubory můžou být dost velké a pokud se při přehrávání uživatel přesune dál v záznamu, takhle by musel čekat, až se celý soubor načte.
Tohle se obecně řeší pomocí HTTP Range hlaviček, což Fedora (alespoň ve verzi 3.5 nepodporuje).
Proto byl při podpoře audio záznamů a integraci javascriptové přehrávačky vytvořen servlet AudioProxy, který Range podporuje a přeposílá data mezi backendovým audio serverem (Apache) také podporujícím Range a klientem.
Ve Fedoře pak zvukové datastreamy vypadají takto:

<foxml:datastream ID="WAV" STATE="A" CONTROL_GROUP="E" VERSIONABLE="true">
<foxml:datastreamVersion ID="WAV.0" LABEL="Wav version of this audio track" CREATED="2014-06-19T10:49:01.000Z" MIMETYPE="audio/wav">
<foxml:contentLocation TYPE="URL" REF="http://audioserver.mzk.cz/mzk01/001/252/585/df6c2a49-d9f6-40fe-9533-8c96f67fa229.wav"/>
</foxml:datastreamVersion>
</foxml:datastream>
<foxml:datastream ID="MP3" STATE="A" CONTROL_GROUP="E" VERSIONABLE="true">
<foxml:datastreamVersion ID="MP3.0" LABEL="Mp3 version of this audio track" CREATED="2014-06-19T10:49:01.000Z" MIMETYPE="audio/mpeg">
<foxml:contentLocation TYPE="URL" REF="http://audioserver.mzk.cz/mzk01/001/252/585/df6c2a49-d9f6-40fe-9533-8c96f67fa229.mp3"/>
</foxml:datastreamVersion>
</foxml:datastream>
<foxml:datastream ID="OGG" STATE="A" CONTROL_GROUP="E" VERSIONABLE="true">
<foxml:datastreamVersion ID="OGG.0" LABEL="Ogg Vorbis version of this audio track" CREATED="2014-06-19T10:49:01.000Z" MIMETYPE="audio/ogg">
<foxml:contentLocation TYPE="URL" REF="http://audioserver.mzk.cz/mzk01/001/252/585/df6c2a49-d9f6-40fe-9533-8c96f67fa229.ogg"/>
</foxml:datastreamVersion>
</foxml:datastream>

(Url typu http://audioserver.mzk.cz/mzk01/001/252/585/df6c2a49-d9f6-40fe-9533-8c96f67fa229.ogg nejsou zvenku dostupná, podobně jako dlaždice imageServeru nebo API Fedory.)
AudioServlet kontroluje přístupová práva, použití Range není nutné - bez něj je vrácen celý soubor.
Operace GET http://localhost:8080/search/api/v5.0/item/<pid>/streams/<stream_id> by tak měla pro OGG, WAV, MP3 použít kód z AudioServletu namísto získávání datastreamu z Fedory.

@vlahoda vlahoda added the 2 návrh na rozšíření Požadavek, který lze realizovat. Realizace podléhá schválení vývojového týmu. label Sep 23, 2014
@pavel-stastny
Copy link
Contributor

Vyreseno v #250

komity:
a9cd6db
76951f0
b0e8dd5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2 návrh na rozšíření Požadavek, který lze realizovat. Realizace podléhá schválení vývojového týmu.
Projects
None yet
Development

No branches or pull requests

3 participants