Izdelava aplikacije za prenos videa na zahtevo s portala RTV Slovenija
|
|
- Laura Žižek
- pred 3 leti
- Pregledov:
Transkripcija
1 Univerza v Ljubljani Fakulteta za elektrotehniko Klemen Sorta Izdelava aplikacije za prenos videa na zahtevo s portala RTV Slovenija Diplomsko delo Mentor: izr. prof. dr. Jaka Sodnik Ljubljana, 2018
2
3 Zahvala Zahvaljujem se profesorju Jaki Sodniku za pomoč in uporabne nasvete pri izdelavi diplomskega dela. Hvala celotni družini za pomoč in potrpežljivost v času študija. Prav tako se zahvaljujem sošolcem za vso pomoč pri študijskih težavah. Na koncu bi se rad zahvalil še skupnosti Stack Overflow za vso pomoč pri programerskih težavah.
4
5 Vsebina 1 Uvod 13 2 Video na zahtevo (VOD) Kaj je video na zahtevo Delovanje VOD Vrste VOD VOD in piratstvo Uporabljene tehnologije Programsko orodje Netbeans Urejevalnik izvorne kode Grafični vmesnik Programski jezik Java Orodje Apache Maven JSON Knjižnica JsonPath Knjižnica HtmlUnit Izdelava aplikacije za prenos Namen Razvoj programske kode za prenos vsebine Prijava v sistem Dostopanje do knjižnice JSON Zajem avdio/video datoteke in ostalih parametrov Preverjanje obstoja vsebine Izračunavanje in pretvarjanje enot
6 6 Vsebina Prenos vsebine Gumbi in njihovo delovanje Premor in nadaljevanje Brisanje vnosa Odpiranje shranjevalnega mesta Opozorila Zaključek 49 Literatura 51
7 Vsebina 7
8 8 Seznam uporabljenih simbolov RTV Radiotelevizija RS Republika Slovenija VOD Video on Demand (video na zahtevo) VCR Videocassette recorder (snemalnik za videokasete) IDE Integrated Development Environment (integrirano razvojno okolje) GUI Graphical User Interface (grafični uporabniški vmesnik) JVM Java Virtual Machine (javanski virtualni računalnik) POM Project Object Model (projektno objektni model) OS Operating System (operacijski sistem) B Byte (bajt) GB Gigabyte (gigabajt) MB Megabyte (megabajt) API Application Programming Interface (vmesnik za namensko programiranje)
9 Povzetek Diplomsko delo opisuje postopek izdelave aplikacije za prenos vsebin, ki jih v obliki videa na zahtevo ponuja RTV Slovenija. Cilj je bil omogočiti prenos vsebin iz arhiva RTV-ja na uporabnikov računalnik. Pri tem mora aplikacija uspešno prenesti katero koli vsebino ne glede na velikost ali tip datoteke. Prvi del diplomskega dela je teoretično usmerjen in opisuje uporabljene tehnologije. Poudarek je predvsem na opisu tehnologij videa na zahtevo, ki je namenjen takojšnemu dostopu do video in avdio vsebin, pri čemer je ogled omogočen kadar koli in ne le takrat, ko se vsebina oddaja. Opisani so tudi uporabljen programski jezik Java, integrirano razvojno okolje Netbeans, orodje Maven, format JSON ter knjižnici JsonPath in HtmlUnit. V drugem delu so opisani namen, izdelava in delovanje aplikacije. Zajete so vse potrebne faze, da se vsebina na določenem URL-naslovu shrani kot video ali avdio datoteka v računalniku. JSON Ključne besede: video na zahtevo, prenos, Java, RTV Slovenija, NetBeans, 9
10
11 Abstract The thesis describes the process of making an application for content downloading in form of video-on-demand as offered by RTV Slovenija. The aim was to facilitate the transfer of content from the RTV archives to the user s computer. However, the application has to download any content successfully, regardless of file size or type. The first part of the thesis is theoretical and discusses the technologies used. The emphasis is mainly placed on describing the video-on-demand technologies aimed at immediate access to video and audio content that can be viewed any time, not just when the content is broadcasted. The Java programming language, NetBeans integrated development environment, Maven tool, JSON format as well as JsonPath and HtmlUnit libraries that were used in the thesis are also described. The second part explains the purpose, development and functioning of the application. All the phases needed for transferring the content as a video or audio file from a specific URL address to the computer are discussed as well. Keywords: video-on-demand, transfer, Java, RTV Slovenija, NetBeans, JSON 11
12
13 1 Uvod Danes obstaja veliko spletnih strani, ki ponujajo storitev video na zahtevo (angl. Video on Demand VOD). Najbolj znani so Netflix, YouTube, Amazon Video ipd. Tudi Radio Televizija (RTV) Slovenija omogoča storitev video na zahtevo, ki pa je pri nas brezplačna, a ponuja le vsebino, ki se je v preteklosti predvajala na njihovih radiih in televiziji. Drugod so take vsebine plačljive. Vseeno pa obstaja nekaj orodij, v večini v obliki programov in dodatkov za brskalnike, ki omogočajo prenos teh vsebin. Ponudniki poskušajo vsebine zaščititi pred prenosi, vendar se posodabljajo tudi storitve, ki prenose omogočajo. Cilj diplomskega dela je bil ta, da se omogoča prenos vsebine iz arhiva RTV Slovenija, in sicer na dovolj preprost in razumljiv način, da to lahko stori kdor koli oziroma tudi tisti, ki ne razumejo programske kode. Aplikacija med delovanjem namreč dostopa do oddaljenih programskih knjižnic, kjer najde podatke, potrebne za prenos vsebine. Do nedavnega si je bilo brez kakršne koli prijave v sistem mogoče ogledati katero koli vsebino v arhivu RTV-ja. Vendar je po novem to možno storiti le za vsebino, ki je bila predvajana v tekočem mesecu. Za ogled starejših vsebin je potrebna prijava v sistem. RTV Slovenija je javni zavod, katerega javna služba je zagotavljanje kulturnih, socialnih in demokratičnih potreb državljanov Republike Slovenija. Enako zagotavlja za Slovence po svetu, pripadnike narodnih manjšin v Italiji, Avstriji in na Madžarskem, italijanske in madžarske narodne skupnosti v RS. Sedež ima v Ljubljani ter dva regionalna centra v Kopru in Mariboru. 13
14 14 1 Uvod Multimedijski center RTV je zadolžen za ustvarjanje zabavnega, otroškega in informativnega infokanala ter podnaslavljanje oddaj za gluhe in naglušne [1]. RTV 4D je multimedijski predvajalnik, ki omogoča spremljanje televizijskih in radijskih programov v živo, pregledovanje novic ter ogled in poslušanje vsebin iz arhiva. V arhivu se nahajajo le vsebine, ki so nastale v produkciji RTV Slovenija.
15 15
16
17 2 Video na zahtevo (VOD) 2.1 Kaj je video na zahtevo Zaradi napredka tehnologije in povečanja območja dostopnosti do brezžičnega omrežja lahko dostopamo do spletnih vsebin skoraj kjer koli in kadar koli. Običajno se za to uporabljajo pameti telefoni in tablice predvsem zaradi majhnosti, saj jih lahko ves čas nosimo s seboj. Posledično so začeli ponudniki vsebin omogočati ogled spletnih vsebin (že kmalu po predvajanju) tudi na teh napravah. Gre za nadaljevanke, oddaje, lastne vsebine Video na zahtevo je torej storitev, ki uporabnikom omogoča ogled video in avdio vsebine ob poljubnem času, tako da jim ni treba gledati ali poslušati vsebine v času oddajanja. Ogledati si jo je možno preko spleta kjer koli in kadar koli kasneje, potreben je le dostop do spleta. Do vsebine je možno dostopati preko interneta in računalnika ali TV-sprejemnika z uporabo TV-komunikatorja (angl. set-top Box) [2]. Vsebina je lahko uporabniku dostavljena na tri načine [3]: s pretakanjem (angl. Streaming), pri katerem strežnik sproti (v času gledanja) dostavlja vsebino uporabniku; s progresivnim pretakanjem (angl. Progressive streaming), pri katerem se video prenaša preko strežnika http in se začasno shrani na uporabnikovi napravi. Če želi uporabnik predvajati vsebino od neke točke naprej, mora počakati, da se prenese tisti del. Ko se prenese celotna vsebina, pri preskakovanju vsebine ni treba več čakati; s prilagodljivim pretakanjem (angl. Adaptive streaming), pri katerem se vsebina prilagodi uporabnikovim zmogljivostim, kot je na primer internetna povezava. Če je povezava dobra, bo vsebina visoke ločljivosti, če je slaba, pa slabše ločljivosti. 17
18 18 2 Video na zahtevo (VOD) Vsebina je lahko: naročniška: če se uporabnik naroči na serijo, ima neomejen dostop do vseh njenih vsebin; kupljena: uporabnik lahko gleda vsebino kolikokrat hoče, dokler jo ponudnik (npr. Netflix) ima na voljo in v ponudbi; izposojena: vsebina je uporabniku na voljo le določen čas. 2.2 Delovanje VOD Pri kabelski televiziji je vsebina za VOD shranjena na centraliziranem strežniku v obliki zgoščenih digitalnih datotek. Uporabnik preko digitalnega sprejemnika izbere želeno vsebino, ki je lahko brezplačna ali zaračunana v manjšem znesku. Po izboru se začne vsebina takoj predvajati. Vsebino je možno ponovno predvajati, prevrteti naprej in nazaj, ustaviti in uporabiti premor. VOD, ki deluje na internetnem omrežju, večinoma obsega izposojo video vsebine. Ta namreč strankam omogoča takojšen dostop do velike knjižnice vsebin. Ponudniki, ki ponujajo vsebino preko interneta, želijo to vsebino predvajati na strankinem televizorju oz. napravi (na primer računalniku). Ko uporabnik izbere želeno vsebino, se strežniku pošlje zahteva za predvajanje. Ta zahtevo obdela in s pomočjo protokola RTSP (angl. Real Time Streaming Protocol) vsebino pošlje uporabniku. Protokol RTSP deluje na aplikacijski plasti in je zasnovan za nadzor strežnikov, ki omogočajo predvajanje vsebine. Protokol se uporabi pri vzpostavitvi povezave in nadzoru povezave med dvema točkama. Odjemalec (stranka) pošilja strežniku zahteve (predvajaj, premor) ter s tem nadzoruje predvajanje vsebine s strežnika. Vendar RTSP ne omogoča prenosa vsebine. Za to nalogo večina RTSP strežnikov uporablja RTP (Real-time Transfer Protocol) v povezavi z RTCP (Realtime Control Protocol) [4]. RTP razbije podatkovni tok iz kodirnika na pakete in jih pošlje preko omrežja. Na sprejemni strani jih ponovno sestavi. Pri tem uporablja časovne značke (vsak
19 2.3 Vrste VOD 19 paket ima svojo številko), da se paketi ne izgubijo ali pridejo v drugačnem vrstnem redu, kot so bili poslani [5]. RTCP je komponenta protokola RTP, ki zagotavlja nadzor delovanja RTP oz. RTP seje. RTCP sporoča kakovost prenesenega prometa. 2.3 Vrste VOD Točne kategorije, v katere bi lahko razčlenili VOD, je težko določiti. Avtorji člankov in knjig namreč vsak po svoje razložijo, kako bi razdelili storitev VOD. Informacije v knjigah so večinoma zanesljivejše kot tiste na spletu, zato sem se odločil, da povzamem kategorije iz ene izmed knjig [6]: pravi video na zahtevo (True Video on Demand): vsak gledalec ima svoj podatkovni tok, nad katerim ima nadzor. Tako lahko previja vsebino naprej ali nazaj, ustavi ipd. Z drugimi besedami, uporablja lahko enake funkcije kot predvajalnik VCR. Gledalec plača pristojbino za vsako gledano vsebino; bližnji VOD (Near VOD): podobno kot TVOD, vendar gledalec nima nadzora nad vsebino. Vsebina se predvaja na več kanalih hkrati, vendar z nekim časovnim zamikom (5 20 min). Gledalec oz. naročnik si sam izbere, na katerem programu bo gledal vsebino [7]. Vsebina je plačljiva za ogled oz. PPV (Pay-Per-View). Tako gledalcu ni potrebno plačati naročnine; naročniški VOD (Subscription VOD): enak kot VOD, vendar naročnik plača fiksno mesečno naročnino (pri VOD plača za vsako vsebino posebej). S tem dobi neomejen dostop do knjižnice vsebin. V večini sistemov se knjižnice posodabljajo mesečno; brezplačni VOD (Free VOD): oblika VOD, kjer je vsebina brezplačna. Vendar večina sistemov vsebuje dolgo obliko oglaševanja, vodiče ''kako narediti'' in drugo poceni vsebino. Sem spada tudi RTV Slovenija. Vsebina je brezplačna, vendar za ogled starejših vsebin, zahteva brezplačno registracijo;
20 20 2 Video na zahtevo (VOD) vse na zahtevo (Everything on Demand): vsi naročniki pričakujejo takojšen dostop do vseh programov ves čas [8]; PVR (Personal Video Recorders): naprava sprejema prihajajočo video vsebino, jo kompresira in posname na trdi disk. Ta je lahko samostojna naprava ali nameščen v STB. Gledalec lahko uporablja enake funkcije kot pri VCR (opisane v pravi VOD). Gledalci običajno sami nastavijo PVR, da snema določeno oddajo ob izbranem času; NPVR (Network PVR): podobno kot PVR, vendar se snemanje programa izvaja v omrežju ponudnika spletne storitve; plačilo na ogled (Pay Per View): to storitev se uporablja predvsem za predvajanja plačljivih vsebin v živo, kot na primer športnih dogodkov ali koncertov. Pri VOD si naročnik oz. gledalec sam izbere čas, ko si bo vsebino ogledal. PPW pa ima urnik, kdaj se bo vsebina predvajala [9]. 2.4 VOD in piratstvo Večjo težavo pri storitvah VOD in prodaji vsebin predstavlja piratstvo. Pri piratstvu gre za kopiranje, razširjanje in uporabo vsebine (igre, knjige, plačilni programi, filmi) brez dovoljenja avtorja. Najpogostejši način piratstva videa na zahtevo je prenos datotek preko interneta. Vendar je piratstvo lahko tudi dobra stvar za ponudnike storitev VOD. Čeprav se s tem zmanjša zaslužek podjetja, jim piratstvo lahko pomaga pri prepoznavnosti. Pri tem se jim tudi poveča število naročnikov. Prav tako lahko pomaga pri izbiri ponujene vsebine. Netflix je namreč razkril, da pregleduje piratske strani. Tako ugotovijo, katere TV-vsebine bi moral dodati v ponudbo oziroma katere vsebine so sploh priljubljene na piratskih straneh. S to tehniko in poceni naročnino želijo zmanjšati piratstvo, kar trdijo, da jim počasi uspeva [10].
21 3 Uporabljene tehnologije 3.1 Programsko orodje Netbeans Programsko orodje Netbeans je integrirano razvojno okolje (angl. Integrated Development Environment), namenjeno predvsem programiranju v programskem jeziku Java. Vendar omogoča tudi HTML (vključno s HTML 5), CSS, JavaScript, php, C/C#... Poleg tega je program odprtokoden in je eden izmed najpogostejših platform za programiranje v Javi. Bolj poznani sta InteliJ in Eclipse [11]. IDE je računalniška aplikacija, ki vsebuje različna orodja za razvoj programske opreme. Običajno vsebuje urejevalnik izvorne kode, prevajalnik, razhroščevalnik in orodja za izdelavo grafičnega vmesnika. Slika 3.1: Privzeta postavitev oken ob zagonu programa 21
22 22 3 Uporabljene tehnologije Privzeta postavitev oken Netbeansa v načinu grafičnega vmesnika vsebuje [12]: urejevalno okno, ki je ogrodje za izdelavo grafične podobe aplikacijskega okna, ki se nahaja na sredini okna programa. V načinu grafičnega urejevalnika lahko vanj z vlečenjem (ali klikanjem) vstavljamo komponente iz palete. Vstavljene komponente se lahko kasneje dodatno premika, odstrani, ureja odvisno od tega, kakšna postavitev (angl. Layout) je izbrana; navigator v drevesni hierarhiji prikaže komponente, ki jih vsebuje okno aplikacije. Poleg tega tudi vizualno poudari trenutno izbrane komponente; paleta komponent prikaže komponente, ki so na voljo; lastnosti prikaže lastnosti komponente, ki je trenutno izbrana v urejevalnem oknu, navigatorju, ali v raziskovalcu; izpis pokaže vsa sporočila, ko aplikacijo zaženemo ali ustavimo in ko poženemo razhroščevalnik; dodatna okna v zavihkih prikažejo zavihke: o Projects za pogled projektov in njihovih datotek v drevesni hierarhiji; o Files za pogled datotek projekta v načinu raziskovalca; o Service je vsebnik, ki gosti storitve (podatkovne baze, strežnike, druge spletne storitve ) tako lahko neposredno iz Netbeansa urejamo podatkovno bazo ali zaženemo oz. ustavimo strežnik. V primeru, da programiramo izvorno kodo (programer ne uporablja grafičnega vmesnika), desni stolpec ni viden. Pri načinu urejevalnika izvorne kode programer nima na voljo palete komponent in lastnosti. V urejevalnem oknu je le polje za pisanje programa.
23 3.1 Programsko orodje Netbeans Urejevalnik izvorne kode Urejevalnik izvorne kode je namenjen a enostavnejšemu in hitrejšemu pisanje izvorne kode programa. Najpomembnejše značilnosti so označevanje sintakse, zamiki, samodejno zaključevanje (npr. ime metode ali spremenljivke, parametri pri klicanju metode) in samodejno vstavljanje ustreznih zaklepajev (oglati ali navadni). V urejevalniku je možno tudi ustvariti in urejati grafične objekte. V primeru, da ima program tudi grafični vmesnik, ti grafični objekti v njem niso vidni. Vidni so šele, ko se aplikacija zažene. Za lažje prepoznavo sintakse je vsaka kategorija obarvana drugače. Kategorije so na primer: komentar, znak, metoda, številka, operator... [13]. Slika 3.2: Pregled urejevalnika izvorne kode Grafični vmesnik Ena izmed prednosti programa IDE je grafični vmesnik (angl. Graphical User Interface GUI), s katerim je mogoče običajno lažje in hitreje izdelati grafično podobo programa. Netbeans ima na voljo več komponent, kot so gumbi, besedilna
24 24 3 Uporabljene tehnologije polja, spustni seznam, okno za izbor datotek... Komponente se lahko vnese v AWT ali v načinu Swing. Pri AWT (Abstract Window Toolkit) se komponente spreminjajo glede na platformo, na kateri se aplikacija izvaja. Tako bodo v Linuxu prikazane drugače kot v Windowsih. Na voljo ima manj komponent, kot jih omogoča Swing. Pri Swingu se komponente pojavijo enako na različnih platformah. Na sliki 3.3 in sliki 3.4 je prikazana upodobitev komponent glede na platformo izvajanja. Prva slika prikazuje uporabo komponente AWT, kjer se največja razlika vidi v potrditvenemu polju (Checkbox). Ta je v Linuxu sive barve v Windowsih pa bele. Druga slika prikazuje uporabo komponent Swing, ki so v obeh sistemih enake. Slika 3.3: Primerjava komponente AWT na platformi Linux (levo) in Windows (desno) Slika 3.4: Primerjava komponente Swing na platformi Linux (levo) in Windows (desno)
25 3.1 Programsko orodje Netbeans 25 Slika 3.5: Grafična podoba postavitev oken (njihov pomen je bil razložen v začetku podpoglavja o razvojem orodju)
26 26 3 Uporabljene tehnologije Slika 3.6: Paleta komponent v Netbeansu 3.2 Programski jezik Java Java je programski jezik za razvoj računalniških programov. Je sočasen (hkrati se lahko izvaja več procesov) in predmetno (objektno) usmerjen. Predmetno usmerjen pomeni, da so objekti osnovni elementi programiranja. To so lahko številke, nizi, gumb, besedilno polje, tabela Programski jezik je zasnovan na način, da ni omejen na noben operacijski sistem. Ko enkrat napišemo program, bo brez sprememb deloval na vseh operacijskih sistemih. Prevajalnik namreč prevede program v vmesno kodo (angl. Bytecode) namesto v strojno. Tako se koda ne izvede na procesorju, ampak znotraj Javanskega navideznega računalnika (angl. Java Virtual Machine) [14].
27 3.3 Orodje Apache Maven 27 Javanski navidezni računalnik računalniku omogoča, da požene kateri koli javanski program. 3.3 Orodje Apache Maven Maven je orodje za upravljanje in gradnjo projektov, predvsem javanskih. Deluje na principu projektno objektnega modela (angl. Project Object Model POM). Gre za datoteko XML (datoteka POM), preko katere se upravlja z uporabljenimi knjižnicami, dodatki, vtičniki Z vsako gradnjo projekta Maven dinamično prenese spremembe knjižnic in modulov, če je do njih prišlo [15]. Vsak Maven projekt ima svojo POM-datoteko, v kateri so opisane: informacije o programu, podrobnosti o konfiguraciji, ki jih uporablja Maven pri projektu (npr. cilji, vtičniki), odvisnosti od zunanjih komponent, modulov, zaporedje gradnje. Pri odvisnostih (angl. dependencies) govorimo o povezavah med moduli in knjižnicami. Moji aplikaciji sem dodal odvisnost do knjižnice JasonPath. Ta omogoča iskanje in izločevanje vrednosti iz zapisa JSON. Druga uporabljena knjižnica pa je HtmlUnit in omogoča simuliranje brskalnika. Maven poleg tega omogoča tudi, da sami izberemo različico odvisnosti, ki jo dodajamo. Slika 3.7 prikazuje, katere različice knjižnice, ki se začnejo s številko 2, so na voljo.
28 28 3 Uporabljene tehnologije Slika 3.7: Ponujene verzije odvisnosti JsonPath 3.4 JSON JSON je kratica za JavaScript Object Notation in je preprost format za izmenjavo podatkov. Gre za tekstoven format, ki je v celoti neodvisen od programskega jezika, temelji na JavaScript sintaksi ter je enostaven za branje in pisanje. Čeprav je neodvisen, uporablja konvencije, ki so podobne drugim jezikom (C, C#, Java, Python ). Struktura JSON je lahko objekt ali seznam, vrednost pa je lahko niz (pisan v dvojnih narekovajih), logična vrednost (true, false), število, prazna vrednost (null), objekt ali tabela [16]. Objekt je zbirka parov imena in njegove vrednosti. Začne in konča se z zavitim oklepajem in je sestavljen po načinu: ime oz. ključ, dvopičje (:), vrednost. Če je več objektov, se ti ločujejo z vejico. Slika 3.8: Sestava objekta JSON (Vir: Literatura[16]) Spodaj je primer uporabe JSON. Pri prvem ključu je vrednost niz oz. besedilo, pri drugem pa je število in zato ni v narekovajih.
29 3.4 JSON 29 "mediatype": "video", "age": 25 Seznam se začne in konča z oglatim oklepajem ter vsebuje samo parametre vrednosti, ki so ločeni z vejico. Znotraj vsake vrednosti se običajno nahaja več objektov JSON. Slika 3.9: Sestava seznama JSON(Vir: Literatura[16]) Sledi prikaz primera seznama JSON, ki vsebuje dve polji. { "mediafiles": [ Tu se začne seznam. { Tu se začne prvo polje. "height": 720, "mediatype": "MP4", "bitrate": , "filename":"datoteka_1.mp4", "width": 1280, "filesize": , }, Tu se konča prvo polje. { Tu se začne drugo polje. "filesize": , "filename": "Dateoteka_2.mp4", "bitrate": , "width": 640, "height": 360, "mediatype": "MP4", } Tu se konča drugo polje. ] Tu se konča seznam. }
30 30 3 Uporabljene tehnologije 3.5 Knjižnica JsonPath JsonPath je knjižnica, ki omogoča najti in izločiti podatke iz JSON. Za pomikanje po JSON se poleg ključev uporablja še operatorje in funkcije [17]. V tabeli 3.1 so opisani le nekateri najpogostejši operatorji. Operator Opis $ Osnovni element, ki začne vsako izražanje * Poljubni element. ali [] Otroški Trenutni element?() Izražanje filtra Tabela 3.1: Operatorji in njihovi opisi Knjižnica ima na voljo tudi nekaj funkcij, ki se jih vnese na koncu definiranja poti. Te funkcije so minimalna, povprečna ali maksimalna vrednost s seznama vrednosti. Poleg pa še standardni odklon s seznama vrednosti in velikost seznama oz. število vrednosti. JsonPath ima na voljo več metod za obdelavo zapisa JSON. Najbolj obsežni sta parse(), ki se uporablja za razčlenjevanje in metoda read(), ki se uporablja za branje JSON. Sam sem uporabljlal le metodo read(), in sicer za izločevanje vrednosti ključev, ki so potrebne za uspešen prenos vsebine (npr.: ime datoteke, povezava http do arhiva s posnetki, naslov vsebine). Metoda ima tri parametre: json, ki je lahko datoteka, niz ali vhodni tok podatkov (InputStream); pot do želenega objekta JSON; filtre, ki se jih dodaja po želji. Primer uporabe operaterjev: sledi primer zapisa JSON.
31 3.6 Knjižnica HtmlUnit 31 { "osebe": [ { ] } }, { } "ime": "France", "priimek": "Novak", "starost": 69, "naslov": { "ulica": "Prešernova ulica 4b", "mesto": "Ljubljana", "postna številka": 1000 }, "poklic": "računalniški tehnik" "ime": "Gregor", "priimek": "Podlasica", "starost":19, "naslov": { "ulica": "Prečna Ulica 93", "mesto": "Sežana", "postna številka": 6210 }, "poklic": "zgodovinar" $.osebe[1].ime ime Gregor. Dobi 2. polje v seznamu osebe ter vrne vrednost ključa $.osebe[?(@.starost>15)].priimek vrne priimek vseh oseb, ki so starejše od 20 let. Vrne vrednosti Novak in Podlasica. 3.6 Knjižnica HtmlUnit HtmlUnit se v Javi uporablja za delo z dokumenti HTML, z vključenim APIjem pa omogoča tudi simuliranje brskalnika. Tako se ga lahko uporablja za klikanje gumbov in povezav, izpolnjevanje obrazcev ipd. Lahko bi rekli, da je to brskalnik brez uporabniškega vmesnika. Ima dobro podporo JavaScript, ki ni popolna, vseeno pa lahko simulira brskalnike Chrome, Firefox ali Internet Explorer. Knjižnico se najpogosteje uporablja za testiranje in dostop do podatkov na spletni strani [18].
32 32 4 Izdelava aplikacije za prenos 4.1 Namen Namen aplikacije je omogočiti prenos video in avdio vsebin s portala RTV Slovenija. Na internetu sem našel navodila, kako je mogoče prenesti vsebino, vendar so ta lahko prezahtevna za uporabnike, ki ne razumejo programske kode. Postopek zahteva obdelavo naslova URL, kopiranje in lepljenje vrednosti JSON [19]. Od maja 2018 je za ogled starejših posnetkov potrebna prijava. Zato je ta način delno sprejemljiv, saj je treba najprej pridobiti ID seje, da se pridobi podatke. Programiral sem aplikacijo, ki omogoča preprost prenos vsebine in deluje, dokler je vsebina dostopna preko brskalnika. Pri tem za prijavo uporablja uporabnika, ki sem ga registriral na portalu. 4.2 Razvoj programske kode za prenos vsebine Prijava v sistem Da lahko obiskovalec dostopa do starejše vsebine, mora biti prijavljen. Druge rešitve nisem našel kot to, da sem ustvaril novega uporabnika, ki ga bo aplikacija uporabila za prijavo. Z uporabo knjižnice HtmlUnit se program poveže s spletno stranjo za prijavo. Tam v vnosna polja vpiše uporabniško ime in geslo uporabnika, ki sem ga ustvaril. Nato klikne na gumb za potrditev in se poveže na stran Tam poišče ID seje, ki ga shrani v spremenljivko. Spodaj je prikazana razlika v izvorni kodi zgornja je pri neprijavljenem uporabniku, spodnja pa pri prijavljenem uporabniku. Zaradi varnostnih razlogov sem odstranil resnično uporabniško ime in ID uporabnika.
33 4.2 Razvoj programske kode za prenos vsebine 33 var user_info = {"embed":0}; var user_info = {"session_id":"5b2bdcd876d ","embed":0,"profil _realname":"uporabniško_ime","user_id":"id_uporabnika"}; Dostopanje do knjižnice JSON Vsak URL-naslov vsebine ima na koncu unikatno identifikacijo (pozitivno celo število) oziroma ID. Ta je potreben za dostop do knjižnice, kjer so shranjeni podatki o vsebini. Slika 4.1: URL vsebine URL vsebine je običajno le 4d.rtvslo.si/arhiv/ID_VSEBINE. Vendar so tudi oddaje, ki so na sporedu večkrat, na primer šport, vreme ali»dobro jutro«. Take oddaje imajo v URL razširjeno pot do vsebine, tako da je dodana vrsta oz. naslov oddaje. Tak primer je že na sliki 4.1, kjer je vrsta oddaje»vreme«. Razširjen URL je definiran na način: 4d.rtvslo.si/arhiv/Naslov-oddaje/ID_VSEBINE. Program izloči ID tako, da v niz shrani vse znake po zadnji poševnici (znak /). Nastali niz vstavi v URL-naslov knjižnice na način: a531d5414f478747c1aca622&session_id=id_seje. Vrednost ID_SEJE dobi iz spremenljivke, v kateri je shranjen ID seje.
34 34 4 Izdelava aplikacije za prenos Običajno prikaže brskalnik le dolgo besedilo ključev in njihovih vrednosti, brez neke strukture. Brskalnik Mozilla Firefox ima možnost oblikovati podatke v drevesno hierarhijo. Na ta način je lažje najti ključe in njihove vrednosti, ki jih potrebujemo za prenos. Slika 4.2: Prikaz zapisa s strukturo v brskalniku Mozilla Firefox V primeru, da URL ne bi vseboval podatka o seji, bi bil JSON drugačen. Vendar namesto imena datoteke medijske oddaje bi bilo ime do posnetka, ki obvešča, da je za ogled oddaje potrebna prijava v sistem. Nekateri ključi in njihove vrednosti bi bile enake v obeh primerih. Na primer datumi, naslov oddaje itd. Z uporabo razreda BufferedReader program izpiše JSON v spremenljivko niza. To spremenljivko se uporablja za dostop do podatkov vsebine. Bralnik prebere vse vrstice, jih združi in shrani v niz [20]. String link = linkpolje.gettext(); String zaurl = link.substring(link.lastindexof("/") + 1); URL url = new URL(" + zaurl + "?client_id=82013fb3a531d5414f478747c1aca622&session_id=" + sejaid); BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream())); jsoncon = br.lines().collect(collectors.joining()); br.close();
35 4.2 Razvoj programske kode za prenos vsebine 35 Ko se shranjevanje konča, program preveri, če se nastali niz začne z {''response''. To je potrebno, ker se vsak JSON vsebine začne s tem nizom. Če se ne začne, je prišlo do napake in o tem opozori uporabnika s primernim obvestilom (npr. napačen URL, preveč vnosov v tabeli, datoteka ali URL že obstaja) Zajem avdio/video datoteke in ostalih parametrov JSON je sedaj shranjen v spremenljivki jsoncon. Za iskanje vrednosti je bila uporabljena knjižnica JsonPath. Spodnja koda prikazuje način iskanja vrednosti v JSON. String nekaj = JsonPath.read(jsoncon, "$.Pot.Do.Iskanega.Ključa" ); Glede na indeks izbora program prepozna indeks polja mediafiles, iz katerega bo jemal podatke. Štetje indeksov se začne z 0. Ko program shrani JSON v niz, se v spustni seznam vnesejo kvalitete vsebine, ki so na voljo. Za boljše razumevanje, kje in kako se prebere podatke, sem na spodnjem primeru poročil to tudi grafično označil.
36 36 4 Izdelava aplikacije za prenos Slika 4.3: Tabela mediafiles z označenimi potrebnimi zapisi (posnetek zaslona) Iz zelenih krogcev je razbrano, koliko kvalitet vsebine je na voljo oz. katera polja vsebuje seznam. V zgornjem primeru sta to px in px. V spustni seznam se vnese višina (polje height), vrednost, označena z modrim pravokotnikom. V tem primeru bi bili to 720 in 360. Možno je tudi, da starejši posnetki vsebujejo kvalitete z manjšo resolucijo (vendar je to pri video vsebinah). Možne so tudi le avdio vsebine, ki pa imajo višino 0 in se zato v seznam vnese mp3.
37 4.2 Razvoj programske kode za prenos vsebine 37 Da se pridobi točen URL do datoteke, je treba združiti vrednosti ključev http in filename (ime datoteke). Oba ključa se nahajata v seznamu streamers. To sta vrednosti, označeni v črnem pravokotniku. Včasih se filename ne začne s poševnico (znak /), zato program najprej preveri, če se vrednost začne z njo in jo vnese pred ime, če se ne. Nato vrednosti združi v niz. Vrednosti izbere iz tistega polja tabele mediafiles, ki vsebuje podatke za datoteko izbrane kvalitete oz. resolucije. Sledi primer avdio vsebine, na primer radijska oddaja. Tu so vrednosti označene na isti način kot pri prejšnji sliki: zelen krog predstavlja število kvalitet na voljo, moder pravokotnik predstavlja višino (ker je tu 0, se v spustni seznam vnese mp3), črna pravokotnika pa prikažeta, kako se s kombiniranjem pridobi URL-naslov do medijske datoteke. Tu je tudi vidna razlika med vrednostnima filename, ki se ne začne s poševnico. Slika 4.4: Primer avdio vsebine z označenimi potrebnimi zapisi (posnetek zaslona) URL-naslov do datoteke se shranjuje v spremenljivko. Ta se posodobi vsakič, ko se spremeni izbrana vrednost v spustnem seznamu. Sprememba vrednosti se preverja v datoteki, ki vsebuje izvorno kodo grafičnega vmesnika.
38 38 4 Izdelava aplikacije za prenos Slika 4.5: Način izbora kvalitete vsebine V primeru, da vsebina izbrane kvalitete že obstaja, o tem opozori uporabnika in onemogoči prenos. Pri obstoju sta dve možnosti: vsebina že obstaja kot vnos v tabeli, vsebina ni v tabeli, vendar datoteka obstaja v eni izmed map, kamor je uporabnik že prenašal. Če datoteka ne obstaja in program ne zazna drugih napak (npr. preveč vnosov, ni internetne povezave), je uporabniku omogočen prenos datoteke. Gumb za prenos je omogočen le takrat, kadar program ne zazna napak. Ob kliku na gumb za prenos program najprej sestavi ime datoteke, in sicer s klicanjem metode shrani(). Metoda prebere shranjen JSON in vrne vrednosti ključev title (naslov) in broadcastdate (datum oddajanja). Doda še height (višina) v primeru, da gre za video vsebino. Vse tri parametre loči s podčrtaji. Pri sestavljanju imena odstrani znake, ki jih v OS Windows ne smemo uporabljati pri imenu datoteke. Ti znaki so navedeni v tabeli 4.1. Nekateri niso dovoljeni v operacijskem sistemu Linux (znak / in prazen vnos null). Poleg teh odstrani tudi vejice (,). Vejica je uporabljena pri odpiranju vsebujoče mape, ker je potrebna pri argumentiranju metode, ki odpre mapo. Pri zamenjavi sem spremenil, da zamenja dvopičja (:) z znakom minus ( ) in dodal spreminjanje presledkov v podčrtaje (_). Presledki se namreč pojavijo pri naslovu vsebine (primer na sliki 4.6). Znak Opis < Manjše kot > Večje kot : Dvopičje
39 4.2 Razvoj programske kode za prenos vsebine 39 '' Dvojni narekovaj? Vprašaj * Zvezda / Poševnica \ Poševnica naprej Navpična črta Tabela 4.1: Nedovoljeni imenski znaki v OS Windows Slika 4.6: Opozorilo o poskusu vnašanja nepravilnega znaka pri imenovanju mape v OS Windows V seznam polj (angl. Arraylist) z imenom fileinfo se vnesejo tri vrednosti: povezava HTTP do datoteke, kam in s kašnim imenom se bo datoteka shranila v računalnik, velikost datoteke. Med vnašanjem se vrednosti ločijo s presledkom za kasnejše lažje ločevanje. Čeprav je v JSON shranjena tudi velikost datoteke (ključ filesize), je ta različna od dejanske velikosti datoteke. Da se pridobi realno velikost, program pošlje zahtevo http do medijske datoteke ( ali.mp3). Iz glave zahteve vrne vsebino polja Content Length. To je velikost datoteke v bajtih (slika 4.8). Velikost se shrani v podatkovni tip long. To je obvezno, ker tip int, ki se tudi uporablja za cela števila, omogoča le do bajtov, kar pa je premalo, če želi uporabnik prenesti datoteko, ki je večja od 2,2 GB (npr. posnetek koncerta). Podatkovni tip long pa omogoča do bajtov. long velikost = 0; try { velikost = new URL(datoteke).openConnection().getContentLengthLong();
40 40 4 Izdelava aplikacije za prenos catch (Exception ex) { } Logger.getLogger(metode.class.getName()).log(Level.SEVERE, null, ex); } Slika 4.7: Glava HTTP zahteve z osvetljeno velikostjo datoteke V prikazovalno tabelo se samodejno vnesejo ime in velikost datoteke. Ker je velikost v bajtih, jih program pretvori v človeku razumljiv način (npr. MB). Pretvorba poteka tako, da se vrednost (v bajtih) deli s 1024 (to je 1 KB) toliko časa, dokler ni število manjše od Pri tem ima še števec, ki se povečuje z vsakim deljenjem. Metoda vrne število na koncu deljenja in doda ustrezno predpono. Ta se nahaja v nizu, ki ima vrednost»kmg«to so predpone za kilo (K), mega (M) in giga(g) Preverjanje obstoja vsebine Preden uporabniku progam omogoči prenos, preveri, ali je vsebina v izbrani kvaliteti že bila prenesena. Za vsak vnos v seznamu polj fileinfo program z uporabo metode split() razdeli vnos v tri nize. Tako se dobi povezavo http do datoteke, mesto shranjevanja in velikost datoteke. Vsako povezavo http preveri, če se ujema s povezavo http nove vsebine, ki jo želi uporabnik prenesti. V primeru, da vsebina še ni bila prenesena, jo je uporabniku dovoljeno prenesti. V nasprotnem primeru mu je to onemogočeno.
41 4.2 Razvoj programske kode za prenos vsebine 41 Če URL ne obstaja, je treba preveriti še, ali je bila datoteka že prenesena. Program kliče metodo shrani(), ki vrne niz, kot se bo datoteka imenovala. Nato bere datoteko preneseno.txt, kjer so shranjene mape, v katere je uporabnik že prenesel katero vsebino. Vsako mapo pregleda, ali vsebuje datoteko z imenom, ki ga vrne metoda. Če jo katera vsebuje, program opozori uporabnika, da datoteka že obstaja Izračunavanje in pretvarjanje enot Če je nov vnos prvi v tabeli, se prenos začne takoj, v nasprotnem primeru program počaka, da obstoječi prenosi končajo s prenašanjem. Končan prenos zazna tako, da preveri, ali je napredek enak 100 %. Napredek se z rednim posodabljanjem izpisuje v polju tabele z vsebinami. Napredek program izračuna po enačbi: [ ] [ ] [ ] (4.1) Za izračun časa do konca prenosa sta potrebni preostala velikost datoteke in hitrost prenašanja. Velikost se izračunava z odštevanjem prenesene velikosti od celotne velikosti datoteke, trenutna hitrost prenašanja pa s številom prenesenih bajtov v določenem času. Tako je enačba za izračun hitrosti videti takole: [ ] [ ] (( )[ ] ) [ ]. (4.2) Hitrost prenašanja se izpisuje v spodnjem desnem kotu aplikacije. Trenutni čas in čas začetka prenosa sem dobil s klicanjem metode System.nanoTime(), ki vrne vrednost v nanosekundah od začetka zagona programa. Program ju nato pretvori v sekunde. Tako dobimo enačbo za izračun časa do konca prenosa: [ ] [ ] [ ]. (4.3)
42 42 4 Izdelava aplikacije za prenos Treba je bilo spisati še metodo, ki je to vrednost prikazala v razumljivejšem načinu z uporabo drugih časovnih enot (dnevi, ure, minute in sekunde). Za shranjevanje vrednosti sem uporabil seznam celih števil, v katerega se bodo shranjevale vrednosti časovnih enot. Za pretvorbo vrednosti v druge časovne enote je bil uporabljen razred TimeUnit, s katerim lahko med drugim kličemo metode za pretvorbo med časovnimi enotami (npr. ure v sekunde, sekunde v dneve ). Pretvarjanje deluje tako, da čas v sekundah pretvori v dneve in število shrani v seznam, vendar ostane še vedno čas v sekundah, ki je manjši od enega dneva. Zato program število dni s seznama pretvori v sekunde. To vrednost odšteje od začetnega časa in dobimo, koliko sekund še ostane. Nato na enak način pretvori še v ure, minute in sekunde. Pri tem namesto začetne vrednosti časa uporablja čas preostalih sekund iz prejšnjega računanja. Pri urah je to ostanek pri dnevih, pri minutah pa urah. Pri sekundah ne potrebujemo dodatnega pretvarjanja, ker program manjših enot ne izpisuje. V polju Velikost /Ostane se poleg celotne velikosti datoteke izpisuje in redno posodablja število bajtov (izraženo v npr. MB ali KB), ki jih mora program še prenesti. Slika 4.8: Zapis velikosti v tabeli Dokler se ne prenese celotna datoteka, program prenaša v datoteko s končnico.tmp, torej le neke vrste začasno datoteko. Program ustvari običajno in ne začasno (angl. Temporary) datoteko. Začasna datoteka namreč vsebuje na koncu imena unikatno število. Datoteka je narejena z namenom, če uporabnik zapre program, preden se prenos zaključi. V primeru, da se to zgodi, mora uporabnik ob ponovnem zagonu programa zopet dodati vsebino z enako kvaliteto, da lahko prenos zaključi. Če tega ne stori, ima v mapi le datoteko.tmp. V primeru, da bi imel npr..mp4, bi o
43 4.2 Razvoj programske kode za prenos vsebine 43 napaki (oz. poškodovani) datoteke ugotovil šele, ko bi jo želel odpreti oz. predvajati. Poleg tega bi za video datoteko program sporočil, da datoteka že obstaja (tudi če se ni prenesla v celoti). Slika 4.9: Primer datoteke.tmp Prenos vsebine Program najprej v spremenljivko tipa shrani velikost datoteke.tmp. S tem se ugotovi, koliko bajtov datoteke je bilo že prenesenih. Z uporabo razreda HttpURLConnection se nato poveže do povezave datoteke http. Pri tem dodatno zahteva bajte le od števila prenesenih do konca. Torej, če je program prenesel npr bajtov, bo zahteval dostop od bajta naprej. Zatem poskuša dostopati do zahtevanega dela datoteke. Za dostop in branje je bil uporabljen razred ReadableByteChannel, ki je namenjen branju bajtov. Pri tem lahko program vrne izjemo, da ne more zagotoviti bajtov v zahtevanem območju. Takrat vrne HTTP odzivno kodo 416, kot je prikazano v delu spodnjega programa. Ob takem primeru preveri, ali je prenesena velikost enaka velikosti datoteke http. Na podlagi testiranja sem ugotovil, da je to edini razlog, da vrne to izjemo. Torej je bila datoteka že prenesena v celoti, vendar je lahko prišlo do napake pri zaključevanju. Program nato brez napak zaključi prenos in nadaljuje z izvajanjem kode, ki se zgodi po prenosu. Druga izjema, ki se pri tem lahko pojavi, je ta, da je bila povezava do interneta prekinjena. Takrat poskuša program zopet vzpostaviti povezavo in nadaljevati prenos. To ponavlja, dokler povezava ni zopet vzpostavljena in program nadaljuje s prenašanjem. ReadableByteChannel rbc = null; try {
44 44 4 Izdelava aplikacije za prenos rbc = Channels.newChannel(povezi.getInputStream()); } catch (IOException ex) { try { if (povezi.getresponsecode() == 416) { if (preneseno == velikost) { dokoncano = true; continue; } else { Logger.getLogger(metode.class.getName()).log(Level.SEVERE, null, ex); } } } catch (SocketException e) { if (e.getmessage().equals("network is unreachable: connect")) { continue; } } } catch (NullPointerException ex) { rbc.close(); break; } catch (Exception ex) { Logger.getLogger(metode.class.getName()).log(Level.SEVERE, null, ex); } Če ne vrne izjeme, program začne pretakati (angl. Streaming) bajte v datoteko. Bajti, ki se prenesejo, se dodajo na konec datoteke. V programu je določeno, da prenaša le po nekaj bajtov naenkrat. Bajti se preberejo od števila prenesenih za določeno število naprej. Število prenesenih bajtov se shrani v spremenljivko tipa long. To število se prišteje k številu prenesenih bajtov in odšteje od števila bajtov, kolikor jih je potrebno še prenesti. Lahko se zgodi, da med prenašanjem pride do izgube internetne povezave. V tem primeru se vrne sporočilo, da je prišlo do prekinjene povezave. Program takrat poskuša zopet vzpostaviti povezavo do naslova datoteke http ter nadaljevati prenos. Če pa uspešno prenaša brez težav, se medtem v tabeli posodabljajo podatki in hitrost prenosa. Po vsakem končanem prenosu se mesto datoteke (samo pot do mape) shrani v besedilno datoteko (preneseno.txt), ki je shranjena v domači mapi. Ta datoteka je skrita privzeto ni prikazana med ostalimi datotekami in mapami.
45 4.3 Gumbi in njihovo delovanje 45 Files.setAttribute(tamNekje, "dos:hidden", true); V spremenljivko tamnekje je shranjena pot do datoteke preneseno.txt. Pri Microsoft Windows Visti in kasnejših verzijah (7,8,10) je domača mapa»<root>\users\ime_uporabnika«, v Linuxih pa»<root>/home/ime_uporabnika«[21]. Poleg tega, se na koncu datoteka.tmp preimenuje v ustrezno medijsko datoteko (.mp4,.mp3). 4.3 Gumbi in njihovo delovanje Premor in nadaljevanje Prenos je možno prenehati in ga nato nadaljevati. To pride prav v primeru, da imamo še drugo delo in s tem zmanjšamo zasedenost pasovne širine. Gumb deluje na principu logične vrednosti. Če je true, se prenos nadaljuje in je v gumbu oblika za premor (pavza). Takrat se izvaja koda, namenjena prenosu vsebine. Če pa je false, sledi premor. Program počaka 100 milisekund, spet preveri stanje logične vrednosti in se primerno odzove. Ko je izbrana pavza, je v gumbu oblika za predvajanje. } while (ostane > 0) { if(playp){ //branje in zapis podatkov //izpisovanje v tabelo } else { TimeUnit.MILLISECONDS.sleep(100); }
46 46 4 Izdelava aplikacije za prenos V spremenljivki ostane se shranjuje, koliko bajtov je še treba prenesti. Spremenljivka playp je logična spremenljivka, ki določi, ali naj program prenaša vsebino ali naj sledi premor. Slika 4.10: Podoba gumba ob prenašanju (levo) in ob premoru (desno) Brisanje vnosa Vsak vnos vsebine je možno odstraniti. V primeru, da uporabnik odstrani vnos, ki se trenutno prenaša, se prenos konča, vnos se odstrani in datoteka se izbriše. Pri odstranitvi vnosa, ki se je že končal prenašati ali se ni še začel, se odstrani samo vnos iz tabele. V vsakem primeru pa se vnos odstrani s seznama polj fileinfo, kjer so zapisani podatki vsebine (povezava http, mesto shranjevanja in velikost). Slika 4.11: Gumb za odstranitev vnosa Odpiranje shranjevalnega mesta Funkcija je namenjena odpiranju mape, ki vsebuje datoteko izbranega vnosa. Ker aplikacija deluje v Windows in Linux sistemu, je bilo treba narediti za vsak sistem kodo, ki bo odprla mesto datoteke. Za kakšen sistem gre, program ugotovi tako, da zahteva ime sistema. Za odpiranje mape v Windows sistemu sem uporabil metodo exec() razreda Runtime. Runtime omogoča komuniciranje aplikacije z okoljem, kjer se izvaja. Metoda exec(string command) izvede ukaz, ki ga kot niz vpišemo v argument metode. Za Linux sistem sem uporabil Desktop razred, ki med drugim omogoča odpiranje mape. Ta ne osvetli datoteke. To je zato, ker ima vsak Linux drugače narejen raziskovalec datotek.
47 4.3 Gumbi in njihovo delovanje 47 int i = podatki.getselectedrow(); String[] tab = fileinfo.get(i).split(" "); String fn = podatki.getvalueat(i, 0).toString() + ".tmp"; String pot = tab[1].substring(0, tab[1].lastindexof(file.separatorchar))+ File.separatorChar + fn; pot = (Files.exists(Paths.get(pot)))? pot : tab[1]; if (Desktop.isDesktopSupported() && sistem.equals("linux")) { Desktop.getDesktop().open(new File(pot).getParentFile()); } else if (sistem.equals("win")) { Runtime.getRuntime().exec("explorer.exe /select," + pot); } V niz pot se shrani mesto shranjevanja datoteke.tmp. S pogojnim operatorjem preveri, če datoteka obstaja. Če ne, se v isto spremenljivko shrani pot do medijske datoteke, ki jo je uporabnik izbral pred prenosom. Ob kliku računalnik zažene raziskovalca, odpre mapo, kjer se datoteka nahaja. Datoteko nato le izbere, vendar je ne odpre. V argumentu je vidno, da je vejica kot del ukaza (označeno z rumeno). Zaradi tega jo je bilo treba odstraniti iz imena datoteke, ko je program sestavljal njeno ime. Slika 4.12: Gumb za odpiranje mape, ki vsebuje izbrani vnos Lahko se zgodi, da želi uporabnik prenesti datoteko, ki že obstaja, vendar je ni na seznamu v tabeli. Preverjanje obstoja datoteke sem že opisal. Dodal bi le, da v takem primeru aplikacija prikaže dodaten gumb, ki odpre mesto te datoteke. Ta gumb je narejen na isti način kot prejšnji. Razlika je v tem, da prejšnji prebere iz tabele, ta pa iz besedilne datoteke (preneseno.txt). V primeru, da vsebina izbrane kvalitete še ni bila prenesena, gumb ni prikazan. Slika 4.13: Gumb za odpiranje obstoječe datoteke, ki je ni na seznamu
48 48 4 Izdelava aplikacije za prenos Slika 4.14: Primer pojavitve gumba za obstoječo datoteko, ki je ni na seznamu Slika 4.15: Gumb ni prikazan, ker datoteka še ne obstaja 4.4 Opozorila Opozorila, ki jih javi program, se izpisujejo na črnem traku, nad gumbom za prenos. Ta opozorila so: neveljaven URL: javi, če ne najde knjižnice z JSON; doseženo maksimalno število vnosov: da ne bi bilo preveč vnosov (v primeru, da uporabnik želi prenesti več vsebin), sem omejil število vnosov na 20. Če pride do tega, je gumb za prenos onemogočen. Uporabnik mora odstraniti dovolj vnosov, da lahko doda nove želene vsebine. Program prešteje število vnosov in če jih je 20, onemogoči dodajanje novih; URL že obstaja: vnos vsebine izbrane kvalitete, ki jo želi uporabnik prenesti, že obstaja. Med dodajanjem vsebine se njen URL shrani v seznam. Ta seznam uporablja za preverjanje, ali vsebina, ki jo želi uporabnik prenesti, že obstaja; ni internetne povezave: v primeru, da uporabnik ni povezan z internetom. To se preveri tako, da se program poskuša povezati na naslov» datoteka že obstaja: preveri besedilno datoteko, ali je katera izmed vnesenih poti do datotek enaka tisti, ki jo želimo prenesti.
49 5 Zaključek Cilj diplomskega dela je bil razvoj aplikacije, ki bi omogočila prenos vsebine iz arhiva RTV Slovenija. Na koncu so se vse datoteke uspešno prenesle v mape, kamor sem jih želel shraniti. Prav tako če sem vsako vsebino shranil v drugo mapo. Program si mora zapomniti za vsako vsebino, kam se ta shranjuje. Program deluje robustno, kar pomeni, da uspešno obvesti o morebitnih napakah in se ne ustavi. Največ težav se pojavi ob izgubi internetne povezave in pri omogočanju le enega prenosa naenkrat. V začetku sem imel namen omogočiti več prenosov hkrati, vendar je prišlo do težav pri branju in shranjevanju. Prenašati so se začele vse datoteke, vendar so se shranjevale v eno datoteko, ki je bila prva dodana za prenos. To funkcionalnost sem posledično opustil in se omejil le na en sočasni prenos. Druga večja težava je bil brisanje vnosov, saj je bilo treba storiti več sprememb pod različnimi pogoji. Odziv programa pri brisanju je odvisen od tega, kateri vnos brišemo torej, ali gre za že dokončan prenos, trenuten prenos, ali vnos, ki se še ni začel prenašati. Raziskoval sem, kako so sestavljene druge spletne strani, ki ponujajo ogled video vsebine (mvideo, YouTube, DailyMotion, Facebook posnetki...). Pri večini je bilo možno brez težav pridobiti URL vsebine za prenos. Potrebna je dodatna uporaba JavaScripta in HTML-ja, saj je pot običajno navedena že v izvorni kodi strani, kjer se 49
50 50 5 Zaključek vsebina nahaja; pri drugih pa je bil potreben dostop do dodatnih knjižnic, ki jih vsebuje spletna stran.
51 Literatura [1] O RTV Slovenija : Prvi interaktivni multimedijski portal, MMC RTV Slovenija.Dosegljivo: [Dostopano: Junij 2018] [2] The Video on Demand Dictionary and Business Index.Dosegljivo: [Dostopano: Maj 2018] [3] Video On Demand (VOD): Which Streaming Method To Use?Dosegljivo: [Dostopano: Maj 2018] [4] RFC Real TIme Streaming Protocol.Dosegljivo: [Dostopano: Maj 2018] [5] RFC RTP,RTCP.Dosegljivo: [Dostopano: Maj 2018] [6] Wes Simpson, "IPTV and Internet Video," in IPTV and Internet Video., [7] What is NVOD? Webopedia Definition.Dosegljivo: [Dostopano: Maj 2018] [8] Everything on Demand - CEB.Dosegljivo: [Dostopano: Maj 2018] [9] Difference Between PPV and VOD Difference Between.Dosegljivo: [Dostopano: Maj 2018] [10] Netflix studies piracy sites to decide what to buy - BBC News.Dosegljivo: [Dostopano: Maj 2018] 51
52 52 Literatura [11] NetBeans.Dosegljivo: [Dostopano: Junij 2018] [12] Designing a Swing GUI in NetBeans IDE - Tutorial.Dosegljivo: [Dostopano: Junij 2018] [13] NetBeans IDE - Editing and Refactoring.Dosegljivo: [Dostopano: Junij 2018] [14] Learn Java (Introduction and Tutorials to Java Programming).Dosegljivo: [Dostopano: Junij 2018] [15] What is Maven? - Definition from Techopedia.Dosegljivo: [Dostopano: Maj 2018] [16] JSON.Dosegljivo: [Dostopano: Maj 2018] [17] JSONPath - XPath for JSON.Dosegljivo: [Dostopano: Maj 2018] [18] HtmlUnit Welcome to HtmlUnit.Dosegljivo: [Dostopano: Junij 2018] [19] Prenos videa iz RTV Slo arhiva Google Chrome Spletne storitve Računalništvo Zmaga.com.Dosegljivo: [20] Paul Deitel & Harvey Deitel, Java How To Program. [Dostopano: Maj 2018] [21] Home directory - Wikipedia.Dosegljivo: [Dostopano: Maj 2018]
Strojna oprema
Asistenta: Mira Trebar, Miha Moškon UIKTNT 2 Uvod v programiranje Začeti moramo razmišljati algoritmično sestaviti recept = napisati algoritem Algoritem za uporabo poljubnega okenskega programa. UIKTNT
Prikaži več1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk
1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatkov in njihov prenos med spletnimi mesti. Obrazec v
Prikaži večZbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje:
Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje: 17.07.2013 Ver. 2.9.1.2 Spletni portal članov uporabniška navodila
Prikaži večNavodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str
Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski naslov: podpora@coks.si
Prikaži večDocument ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov
ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov Gospodarski subjekti Definicija: V skladu z 2. členom Izvedbene uredbe Komisije (EU) 2018/574
Prikaži večVaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas
Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX 3.5 1. Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nastavitve strežnika ESX 3. Namestitev in nastavitve VM
Prikaži večD3 V2 brosura net
Oktober 2012 Najboljša televizija v visoki ločljivosti. Na pogled POPOLNA. Na dotik ENOSTAVNA. Občutno PRIJAZNA. Najboljša izkušnja pred televizorjem. Zavedamo se, da dobra televizijska vsebina običajno
Prikaži večNameščanje Adopt Open Java Development Kit 8
Nameščanje Adopt Open Java Development Kit 8 za Windows x64 IZUM, 2019 IZUM, COBISS, COMARC, COBIB, COLIB, CONOR, SICRIS, E-CRIS so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod...
Prikaži večNameščanje Adopt Open Java Development Kit 8
Nameščanje Adopt Open Java Development Kit 8 za Windows x64 IZUM, 2019 IZUM, COBISS, COMARC, COBIB, COLIB, CONOR, SICRIS, E-CRIS so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod...
Prikaži večPoročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo
Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefonih. Obstaja precej različic, sam pa sem sestavil meni
Prikaži večCOBISS3/Medknjižnična izposoja
3/Medknjižnična izposoja 2.2 KATALOG Katalog nam omogoča: iskanje gradiva prikaz izbranih bibliografskih zapisov ali pripadajočih podatkov o zalogi iz lokalne baze podatkov v formatu COMARC vpogled v stanje
Prikaži večNavodila za uporabo Mini snemalnik
Navodila za uporabo Mini snemalnik www.spyshop.eu Pred vami so navodila za pravilno uporabo mini snemalnika in opis funkcionalnosti. Lastnosti snemalnika: Naziv Mere Teža Kapaciteta spomina Snemanje Format
Prikaži večMicrosoft Word - CNR-BTU3_Bluetooth_vmesnik
CNR-BTU3 Bluetooth vmesnik A. Vsebina pakiranja Bluetooth USB Adapter Bluetooth programska oprema in CD z gonilniki Navodila za uporabo in CD 1. Namestitev Bluetooth programske opreme za Windowse 1. Vstavite
Prikaži večINFORMATOR BIROKRAT 1/2011
ta Veleprodaja Maloprodaja Storitve Računovodstvo Proizvodnja Gostinstvo Turizem Hotelirstvo Ticketing CRM Internetna trgovina Izdelava internetnih strani Grafično oblikovanje NOVOSTI IN NASVETI ZA DELO
Prikaži večPowerPointova predstavitev
INTRANET - DETEKTIV Detektivska zbornica Republike Slovenije Pozdravljeni, v kratki predstaviti in navodilih za delo z intranet sistemom Detektiv. Intranet članom Detektivske zbornice RS omogoča, da: -
Prikaži večNavodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnov
Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnovno sporočilo. Izogibajte se daljših besedil in predolgih
Prikaži večNEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in
NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: +386 1 729 6 460 Faks.: +386 1 729 6 466 www.nevtrin.si info@elektrina.si USB RFID READER Navodila za uporabo?
Prikaži večTNUV Lab
TNUV - VAJA 5 doc. dr. Marko Meža 2013/14 Cilji vaje Predvajanje multimedijskih vsebin MediaPlayer http://developer.android.com/training/building-multimedia.html http://developer.android.com/guide/topics/media/mediaplayer.html
Prikaži večNavodila za uporabo Mini prenosna HD kamera s snemalnikom
Navodila za uporabo Mini prenosna HD kamera s snemalnikom www.spyshop.eu Izdelku so priložena navodila v angleščini, ki poleg teksta prikazujejo tudi slikovni prikaz sestave in delovanja izdelka. Lastnosti
Prikaži večOrodje za izvoz podatkov
Pomoč uporabnikom -NA-SI-200, V6.13-00 IZUM, 2018 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod... 1 2 Predstavitev orodja za izvoz podatkov...
Prikaži večNAVODILA ZA IZPOLNJEVANJE ELEKTRONSKEGA OBRAZCA ZA PRIJAVO IN PREKLIC DIGITALNIH POTRDIL Verzija Datum Opis sprememb dokumenta dokumenta
NAVODILA ZA IZPOLNJEVANJE ELEKTRONSKEGA OBRAZCA ZA PRIJAVO IN PREKLIC DIGITALNIH POTRDIL Verzija Datum Opis sprememb dokumenta dokumenta 1.0 22.11.2013 Prva verzija dokumenta 1.1 15.04.2015 Dodana možnost
Prikaži večRAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni
RAM stroj Nataša Naglič 4. junij 2009 1 RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni trak, pomnilnik ter program. Bralni trak- zaporedje
Prikaži večPowerPoint Presentation
Uporaba storitve Office 365 v napravi iphone ali ipad Priročnik za hiter začetek dela Ogled e-pošte Nastavite napravo iphone ali ipad tako, da boste lahko pošiljali in prejemali e-pošto iz računa v storitvi
Prikaži večProtokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij.
Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij. Protokoli - uvod Protokol je pravilo ali zbirka pravil, ki določajo načine transporta sporočil po računalniškem omrežju
Prikaži večTNUV Lab5
TNUV - VAJA 5 doc. dr. Marko Meža Cilji vaje Predvajanje multimedijskih vsebin MediaPlayer http://developer.android.com/training/building-multimedia.html http://developer.android.com/guide/topics/media/mediaplayer.html
Prikaži večTRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, Verzija 1.0
TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, 12.11.2018 Verzija 1.0 KAZALO 1 REGISTRACIJA... 3 1.1 Katere podatke potrebujem za registracijo/kreiranje
Prikaži večElektronska pošta
Elektronska pošta ZGODOVINA Prvo sporočilo je bilo poslano leta 1971. Besedilo, ki ga je vsebovalo, je bilo QWERTYUIOP. Pošiljatelj je bil Ray Tomlinson, računalnika med katerima je bilo sporočilo poslano
Prikaži večMicrosoft Word - CN-BTU4 Quick Guide_SI
Bluetooth Dongle Artikel: CN-BTU4 NAVODILA v1.0 Sistemske zahteve Zahteve za PC: - Proc.: Intel Pentium III 500MHz or above. - Ram: 256MB ali več. - Disk: vsaj 50MB. - OS: Windows 98SE/Me/2000/XP - Prost
Prikaži večMicrosoft Word - UP_Lekcija04_2014.docx
4. Zanka while Zanke pri programiranju uporabljamo, kadar moramo stavek ali skupino stavkov izvršiti večkrat zaporedoma. Namesto, da iste (ali podobne) stavke pišemo n-krat, jih napišemo samo enkrat in
Prikaži večSpoznajmo PowerPoint 2013
Spoznajmo PowerPoint 2013 13 Nova predstavitev Besedilo v predstavitvi Besedilo, ki se pojavlja v predstavitvah lahko premaknemo kamorkoli v diapozitivu. Kadar izdelamo diapozitiv z že ustvarjenimi okvirji
Prikaži večNove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj n
Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj novosti na področju SCADA sistemov (ifix Productivity
Prikaži večVaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX Dodajanje uporabnikov vajexx v skupino Vaje
Vaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX 3.5 1. Dodajanje uporabnikov vajexx v skupino Vaje 2. Kopiranje Win2003 strežnika in registracija na
Prikaži večMicrosoft Word - eDenar - navodila za uporabo osebnega portala clana doc
Navodila za uporabo osebnega portala člana 13.11.08 Pozor: Ta navodila so le v pomoč uporabnikom. V kolikor so navodila v nasprotju s splošnimi pogoji poslovanja kluba, veljajo splošni pogoji poslovanja
Prikaži večMATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir
MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje priročno programsko okolje tolmač interpreter (ne prevajalnik)
Prikaži večMicrosoft Word - NAVODILA ZA UPORABO.docx
NAVODILA ZA UPORABO VODILO CCM-18A/N-E (K02-MODBUS) Hvala ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shranite za prihodnjo rabo. Vsebina
Prikaži večTRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1
TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, 14. 03.2019 Verzija 1.1 KAZALO 1 NAMEN...3 2 REGISTRACIJA...4 3 VNOS GESLA IN AKTIVACIJA RAČUNA...6
Prikaži večDiapozitiv 1
9. Funkcije 1 9. 1. F U N K C I J A m a i n () 9.2. D E F I N I C I J A F U N K C I J E 9.3. S T A V E K r e t u r n 9.4. K L I C F U N K C I J E I N P R E N O S P A R A M E T R O V 9.5. P R E K R I V
Prikaži večMicrosoft Word - M docx
Š i f r a k a n d i d a t a : Državni izpitni center *M17178111* SPOMLADANSKI IZPITNI ROK Izpitna pola 1 Četrtek, 1. junij 2017 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero
Prikaži večZadeva: Ponudba
Navodila za urejanje Spletne strani CTEK.si 1. Dodajanje novega polnilnika Za dodajanje novega polnilnika nikoli ne prepisujte že objavljenih vsebin, ampak sledite tem navodilom. Ta so zagotovilo, da bodo
Prikaži večRačunalniški praktikum Projektna naloga - Izdelava spletne strani Avtor: Matej Tekavčič Skupina: Matej Tekavčič - koordinator Simon Vrhovnik Tine Kavč
Računalniški praktikum Projektna naloga - Izdelava spletne strani Avtor: Matej Tekavčič Skupina: Matej Tekavčič - koordinator Simon Vrhovnik Tine Kavčič Matjaž Jerman 8. februar 2006 Kazalo 1 Uvod 2 2
Prikaži večExcel 2016
PRIDOBIVANJE TEMELJN IH IN POKLICNIH KOMPETENC OD 2019 DO 2022 HIPERPOVEZAVA Gradivo za interno uporabo AVTOR: Belinda Lovrenčič Gradivo ni lektorirano V Maj 2019 Operacijo sofinancira Evropska unija,
Prikaži večDiapozitiv 1
Pogojni stavek Pogojni (if) stavek Tip bool Primerjanje Uranič Srečo If stavek Vsi dosedanji programi so se izvajali zaporedoma, ni bilo nobenih vejitev Program razvejimo na osnovi odločitev pogojnega
Prikaži večMicrosoft Word - M docx
Š i f r a k a n d i d a t a : ržavni izpitni center *M15178112* SPOMLNSKI IZPITNI ROK Izpitna pola 2 Četrtek, 4. junij 2015 / 90 minut ovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali
Prikaži večBYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površine, pri tem pa zbrati čim več točk. Podobno ig
BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površe, pri tem pa zbrati čim več točk. Podobno igro najdemo tudi v knjigi Scratch (Lajovic, 2011), vendar
Prikaži večCODEKS IP KAMERA
CODEKS IP KAMERA uporabniška navodila Vse pravice pridržane. Noben del uporabniških navodil se ne sme reproducirati v kakršnikoli obliki ali na kakršen koli način - grafični, elektronski ali mehanski,
Prikaži večNAVODILA ZA UPORABO K01-WIFI Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shr
NAVODILA ZA UPORABO Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta in jih shranite za prihodnjo rabo Vsebina 1. Pregled 2. Sistem 3. Prednosti 4. Upravljanje
Prikaži večTRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1,
TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, 14. 03. 2019 KAZALO 1 Namen...3 2 Registracija...4 3 Vnos gesla in aktivacija računa...6 4 Prijava...7
Prikaži večINFORMATOR BIROKRAT 1/2011
ta Veleprodaja Maloprodaja Storitve Računovodstvo Proizvodnja Gostinstvo Turizem Hotelirstvo Ticketing CRM Internetna trgovina Izdelava internetnih strani Grafično oblikovanje NOVOSTI IN NASVETI ZA DELO
Prikaži večMicrosoft Word - CNC obdelava kazalo vsebine.doc
ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo mesto, april 2008 Ime in priimek študenta ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo
Prikaži večTuringov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo
Turingov stroj in programiranje Barbara Strniša 12. 4. 2010 1 Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolov (običajno Σ 2) Σ n = {s 1 s 2... s n ; s i Σ, i =
Prikaži večNavodilo Telemach
Nastavitve za: MOJ TELEMACH Registracija: Na spletni strani Moj Telemach (http://moj.telemach.si) se pomaknite na spodnji del strani in pritisnite gumb REGISTRIRAJ SE. 1. korak Odpre se novo okence, kamor
Prikaži večNavodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte
Navodila za uporabo programske opreme OTRS verzija 2.2.3 Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski
Prikaži večDCS-2330L_A1_QIG_v1.00(EU).indd
HD WIRELESS N OUTDOOR CLOUD CAMERA DCS-2330L KRATKA NAVODILA ZA UPORABO VSEBINA PAKETA HD WIRELESS N OUTDOOR CLOUD CAMERA DCS-2330L NAPAJALNI ADAPTER ADAPTER ETHERNET KABEL (CAT5 UTP) MED POSTAVITVIJO,
Prikaži večMicrosoft PowerPoint - seminar_ pptx
Leatalske informacije in ARO Slovenia Control Igor Čučnik, ARO Aleš Omahne, NOTAM Uroš Grošelj, AIP Brnik, 12.5.2018 Letalske informacije AIP AIP AMDT AIP SUP AIC NOTAM Serija A, B in C VFR karta Spletna
Prikaži večNavodila Trgovina iCenter
Napredovanja v plačne razrede javnih uslužbencev 2019 S pomočjo SAOP programa Kadrovska evidenca lahko ob dokupljeni kodi vodimo napredovanja javnih uslužbencev. Za napredovanja v letu 2019 je potrebno
Prikaži večPOMOČ PREDSTAVITEV EKOSKLADOVNICE UPORABLJENA TERMINOLOGIJA REGISTRACIJA V EKOSKLADOVNICO PRIJAVA V EKOSKLADOVNICO OBJAVA PRISPEVKA ISKANJE PRISPEVKOV
POMOČ PREDSTAVITEV EKOSKLADOVNICE UPORABLJENA TERMINOLOGIJA REGISTRACIJA V EKOSKLADOVNICO PRIJAVA V EKOSKLADOVNICO OBJAVA PRISPEVKA ISKANJE PRISPEVKOV OCENJEVANJE PRISPEVKOV KOMENTIRANJE PRISPEVKOV KONTAKT
Prikaži več(Microsoft Word - MSDN AA Navodila za \232tudente FS.doc)
1. Pogoji uporabe programske opreme Pred uporabo programske opreme iz programa MSDNAA morate prebrati in se strinjati s pogoji in določili Licenčne pogodbe za končnega uporabnika programske opreme MSDN
Prikaži večPowerApps
ko tehnologija postane brezmejna strast Microsoft PowerApps Uporabniška navodila Avtorji Brina Gomboc, Lucija Kos, Damjana Krampač Mentorici dr. Simona Sternad Zabukovšek Sara Cokan, mag. ekon. in posl.
Prikaži večGHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)
GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega) in za vsako napisati svojo kodo. Dve ikoni imata isto
Prikaži večISOFT , računalniški inženiring
ISOFT, računalniški inženiring Marko Kastelic s.p. Sad 2, 1296 Šentvid pri stični Spletna stran podjetja:http://www.isoft.si podjetja ISOFT Spletna stran sistema sledenja vozil track.si: http://www.track.si
Prikaži večGimnazija Bežigrad Peričeva Ljubljana OPERACIJSKI SISTEM Predmet: informatika
Gimnazija Bežigrad Peričeva 4 1000 Ljubljana OPERACIJSKI SISTEM Predmet: informatika KAZALO 1. Uvod...3 2. Predstavitev programa Windows 98...5 3. Raziskovanje računalnika...5 4. Raziskovanje Interneta...6
Prikaži večŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA
ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA Navdih Poizvedovanje po BD podatkovnih virih, ki imajo časovno dimenzijo in so dostopni. Večji promet pomeni večje število dobrin in močnejšo
Prikaži večMicrosoft Word - Splosni pogoji za uporabnike storitve_ONA_ doc
Splošni pogoji in navodila za uporabnike storitev ONA V veljavi od 25.08.2015 1. Splošne določbe Splošni pogoji in navodila določajo način uporabe storitev ONA, ki jih nudi tehnični izvajalec (v nadaljevanju
Prikaži večIJS EDS IJS Elektronski Dokumentni Sistem Osnovna uporaba sistema uporabniška navodila Institut "Jožef Stefan" Ljubljana
IJS Elektronski Dokumentni Sistem Osnovna uporaba sistema uporabniška navodila Institut "Jožef Stefan" Ljubljana Projekt: (RD JN19 16) Naročnik projekta: Institut "Jožef Stefan" Izvajalec projekta: BuyITC
Prikaži večSlide 1
Projektno vodenje PREDAVANJE 7 doc. dr. M. Zajc matej.zajc@fe.uni-lj.si Projektno vodenje z orodjem Excel Predstavitev Najbolj razširjeno orodje za delo s preglednicami Dva sklopa funkcij: Obdelava številk
Prikaži večNETGEAR R6100 WiFi Router Installation Guide
Blagovne znamke NETGEAR, logotip NETGEAR in Connect with Innovation so blagovne znamke in/ali registrirane blagovne znamke družbe NETGEAR, Inc. in/ali njenih povezanih družb v ZDA in/ali drugih državah.
Prikaži večVprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C#
Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C# Pomen posameznih oken uporabniškega vmesnika, urejevalnik
Prikaži večPRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA
KATALOG ZNANJA 1. IME PREDMETA ZBIRKE PODATKOV I ZBIRKE PODATKOV II 2. SPLOŠNI CILJI Splošni cilji predmeta so: razvijanje sposobnosti za uporabo znanstvenih metod in sredstev, razvijanje odgovornosti
Prikaži večbob p. p Ljubljana Tel.: (cena klica na minuto je 1 z DDV) Posebni pogoji uporabe storitve moj bob
bob p. p. 415 1001 Ljubljana Tel.: 090 068 068 (cena klica na minuto je 1 z DDV) www.bob.si Posebni pogoji uporabe storitve moj bob Kazalo Uvod 5 Opredelitve 5 Registracija in uporaba Storitve moj bob
Prikaži večChapter 1
- 1 - Poglavje 1 Uvod v podatkovne baze - 2 - Poglavje 1 Cilji (Teme).. Nekatere domene, kjer se uporabljajo podatkovne baze Značilnosti datotečnih sistemov Problemi vezani na datotečne sisteme Pomen izraza
Prikaži večPoročanje izdanih računov pri gotovinskem poslovanju
Poročanje izdanih računov pri gotovinskem poslovanju Vrsta dokumenta: Uporabniška navodila Pripravil/i: Za: Naviservice +386 1 548 3999 naviservice@adacta.si Adacta d.o.o. Verovškova 55a, 1000 Ljubljana
Prikaži večMicrosoft Word - Navodila za uporabo 1.1.doc
PhotoOrder Navodila za uporabo 1 Kazalo 1 Kazalo... 2 2 Kazalo slik... 3 3 PhotoOrder... 4 4 Nameščanje programa... 5 4.1 Internet Explorer... 5 4.1.1 "Save" ("Shrani")... 5 4.1.2 "Run" ("Odpri")... 6
Prikaži večADSL trojcek brosura_mail
Julij 2013 ADSL TROJČKI Telemachovi trojčki tudi pri vas doma! Vse tri storitve v enem paketu. Da bi vam zagotovili paketno storitev, ki vam je prek lastnega omrežja do sedaj nismo mogli, smo oblikovali
Prikaži večSplošni pogoji poslovanja 1. Uvodna določba 1) Splošni pogoji poslovanja so pravni dogovor med končnim uporabnikom (fizična ali pravna oseba, v nadalj
Splošni pogoji poslovanja 1. Uvodna določba 1) Splošni pogoji poslovanja so pravni dogovor med končnim uporabnikom (fizična ali pravna oseba, v nadaljevanju»naročnik«) in družbo VI NOVA d.o.o. (v nadaljevanje»ponudnik«).
Prikaži večMojtelemach brosura_junij 2015_mail
Naročniški portal MOJ TELEMACH. Junij 2015 Uredite naročilo, ne da bi vstali iz naslanjača. Za preprostejši pregled naročenih storitev, računov in opravljenih klicev ter naročanje dodatnih storitev ipd.
Prikaži večNETGEAR R6250 Smart WiFi Router Installation Guide
Blagovne znamke NETGEAR, logotip NETGEAR in Connect with Innovation so blagovne znamke in/ali registrirane blagovne znamke družbe NETGEAR, Inc. in/ali njenih povezanih družb v ZDA in/ali drugih državah.
Prikaži večIZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko Projekt delno financira Evropska unija, in sicer iz Evropskega socialnega sklada
IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko UPORABLJENE TEHNOLOGIJE Za izdelavo predstavitvene spletne strani smo izbrali tehnologije, ki zagotavljajo: Hitro delovanje spletne
Prikaži večD3GO brosura julij_mail
BREZPLAČNO Julij 2013 Televizija na prenosniku, tablici ali pametnem telefonu. Ob kavi v najljubšem baru si oglejte tekmo kar prek tablice. Seznam barov s povezavo WiFi Telemach najdete na www.d3go.si
Prikaži večNAVODILA ZA IZPOLNJEVANJE OBRAZCA
NAVODILO ZA UPORABO PRIPOMOČKA ZA PRIPRAVO STROŠKOVNEGA NAČRTA PROJEKTA»Piano finanziario Stroskovni nacrt«dokument»piano finanziario Stroskovni nacrt«v Microsoft Excel obliki lahko uporabite kot pripomoček
Prikaži večProgramska sprememba oddelka šole
Pomoč uporabnikom Programska sprememba oddelka šole -NA-SI-355, V1.0 IZUM, 2018 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Navodila... 1 2 Postopek...
Prikaži večCenik Cenik paketov, ki niso več v prodaji Skupine Telemach Paketi Analogni Dvojčki (paketi niso več v prodaji) Mesečna naročnina v EUR DUO INT S....2
paketov, ki niso več v prodaji Paketi Analogni Dvojčki (paketi niso več v prodaji) DUO INT S....26,75 KTV paket L 1 + internet (6 Mbps/1 Mbps) DUO INT M...37,94 KTV paket L 1 + internet (13,3 Mbps/1,5
Prikaži večNavodila za študente
Moodle UM Verzija 3.5.1 Navodila za študente RCUM, Služba za IS Maribor, 2019 Kazalo 1 Prijava v Moodle UM... 3 2 Odjava iz Moodla UM... 3 3 Seznam učnih enot... 4 4 Navigacijski trak... 4 5 Bloki... 5
Prikaži večHiter začetek Razširjevalnik dosega WiFi N300 Model EX2700
Hiter začetek Razširjevalnik dosega WiFi N300 Model EX2700 Začetek uporabe Razširjevalnik dosega WiFi NETGEAR doseg omrežja WiFi poveča tako, da okrepi obstoječi signal WiFi in izboljša splošno kakovost
Prikaži večMiluma Trader Miluma Trader navodila: V nadaljevanju sledijo osnovna navodila, kako začeli uporabljati Miluma Trader. 1. Preverite spletno stran Ta po
navodila: V nadaljevanju sledijo osnovna navodila, kako začeli uporabljati. 1. Preverite spletno stran Ta posnetek zaslona vam prikazuje, da morate v levem vrhnjem kotu preveriti, če se nahajate na pravi
Prikaži večUntitled 2
Projektna rešitev multimedijske opreme za muzej Lojzeta Slaka - Mirna Peč Bazaarhitektura, d.o.o. Mestni trg 9, Ljubljana Projektna rešitev multimedijske opreme za muzej Lojzeta Slaka - Mirna Peč Projekt
Prikaži večUpravljanje sistema COBISS Navodila za uporabo tiskalnika CITIZEN S310II V1.0 VIF-NA-27-SI
Navodila za uporabo tiskalnika CITIZEN S310II V1.0 VIF-NA-27-SI IZUM, 2015 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod... 1 2 Uporaba tiskalnika...
Prikaži večMIX OSO Pivka_mail
Paketi D3i OŠO MIX Pivka Že od 31,90 EUR/mesec November 2013 Najboljša izkušnja pred televizorjem. Več kot 120 TV programov Več kot 50 radijskih programov Najboljši nabor športnih lig Programi v visoki
Prikaži večREPUBLIKA SLOVENIJA SLUŽBA VLADE REPUBLIKE SLOVENIJE ZA RAZVOJ IN EVROPSKO KOHEZIJSKO POLITIKO NAVODILA ZA PRIJAVO LISTIN NA ZZI V PRIMERU PRO RATA V
REPUBLIKA SLOVENIJA SLUŽBA VLADE REPUBLIKE SLOVENIJE ZA RAZVOJ IN EVROPSKO KOHEZIJSKO POLITIKO NAVODILA ZA PRIJAVO LISTIN NA ZZI V PRIMERU PRO RATA V IS e-ma Ljubljana, avgust 2019 1 Vsebina 1. UVOD...
Prikaži večSlide 1
Tehnike programiranja PREDAVANJE 10 Uvod v binarni svet in računalništvo (nadaljevanje) Logične operacije Ponovitev in ilustracija Logične operacije Negacija (eniški komplement) Negiramo vse bite v besedi
Prikaži več(Microsoft Word - Nakupovalni vodi\350 po angle\232kih spletnih trgovinah - IzAnglije)
Nakupovalni vodič po angleških spletnih trgovinah Vedno več ljudi se odloča za nakupe preko spleta. Cene na spletu so pogosto ugodnejše, izbira bolj široka, nakupovanje pa je enostavno in udobno. Dandanes
Prikaži večNaziv storitve Enota mere Tarifa Cena brez davka v EUR Cena z davkom v EUR Stopnja davka MOBILNI NAROČNIŠKI PAKETI IN STORITVE Cene veljajo od
Naziv storitve Enota mere Tarifa Cena brez davka v EUR Cena z davkom v EUR Stopnja davka MOBILNI NAROČNIŠKI PAKETI IN STORITVE Cene veljajo od 19.4.2016 dalje. Enotni paket Naročnina 3,22 3,93 22% 9,89
Prikaži večIZJAVA O ZASEBNOSTI Sistem ena d.o.o. se zavezuje, da bo varoval osebne podatke kupcev, na način, da zbira samo nujne, osnovne podatke o kupcih / upor
IZJAVA O ZASEBNOSTI Sistem ena d.o.o. se zavezuje, da bo varoval osebne podatke kupcev, na način, da zbira samo nujne, osnovne podatke o kupcih / uporabnikih, ki so potrebni za izpolnitev pogodbe; redno
Prikaži večPowerPointova predstavitev
TIK terminal nima povezave s strežnikom Ob vpisu v TIK Admin se pojavi napis ni povezave s strežnikom Na terminalu je ikona 1. preverimo ali je pravilno nastavljen IP strežnika 1. Preverimo datoteko TIKSAdmin.INI
Prikaži večBDV-N890W/BDV-N790W
Sistem za domači kino s predvajalnikom Blu-ray Disc /DVD BDV-N890W BDV-N790W SI Začnite tukaj Kratka navodila za postavitev in uporabo BDV-N790W BDV-N890W 1 Vsebina embalaže/nastavitev zvočnikov BDV-N890W
Prikaži večKratka navodila za uporabo razširjevalnika dosega WiFi AC750 model EX3800
Hiter začetek Razširjevalnik dosega WiFi AC750 Model EX3800 Začetek uporabe Razširjevalnik dosega WiFi NETGEAR doseg omrežja WiFi poveča tako, da okrepi obstoječi signal WiFi in izboljša splošno kakovost
Prikaži večObračun storitev v vrtcu in šoli
Obračun storitev v vrtcu in šoli mag. Jana Trbižan Pripravili: mag. Jana Trbižan, Nuša Peternelj, Mitja Živko Podpora uporabnikom Dnevni red 1. Pogoste napake pri obračunu v vrtcu in šoli 2. Kaj pomeni
Prikaži večPowerPointova predstavitev
IZKUŠNJE PRI PRILAGODITVI E-STORITEV AJPES ZAHTEVAM EIDAS ZA ČEZMEJNO PRIZNAVANJE MARJAN BABIČ, AJPES Vsebina Razlogi za vključitev v projekt CEF Telecom Izvajalno okolje AJPES in način integracije s SI-PASS
Prikaži večNavodilo za urejanje zavarovanj po šifri podlage za zavarovanje 033 prek portala e-vem Ljubljana, oktober 2015
Navodilo za urejanje zavarovanj po šifri podlage za zavarovanje 033 prek portala e-vem Ljubljana, oktober 2015 Kazalo vsebine 1. Pooblastilo za izvajanje postopkov prek portala e-vem... 4 2. Prijava v
Prikaži večMicrosoft Word - CNR-MPV2 Quick Guide_SI
Canyon multimedijski MP3 predvajalnik Artikel: CNR-MPV2 Opozorilo: Pred uporabo pozorno preberite navodila za uporabo. Podrobna navodila se nahajajo na priloženem CD mediju. Opozorilo: Pred uporabo napolnite
Prikaži več