De situatie is als volgt:
Voor een systeem wat ik aan het schrijven ben is het de bedoeling dat de videobestanden via een FLV player worden afgespeeld. Daarnaast is het niet de bedoeling dat de gebruiker niet te zien krijgt waar de FLV bestanden zijn opgeslagen, hoe ze heten, etc.
Kortom, de bedoeling is dat PHP de FLV bestanden aanlevert, in plaats van http://localhost/upload/video/video.flv zou het dan http://localhost/video.php?id=1 moeten worden. Het lijkt mij dat ik PHP gewoon de opdracht kan geven om een FLV bestand uit te spugen, en dat vervolgens als argument aan een FLV player mee te geven.
Mijn code:
Dit levert een werkend flv bestand op. Als ik de output hiervan opsla, en afspeel met iets als Media Player Classic werkt het gewoon. Het probleem lijkt dan ook in de javascript van de JW FLV Media Player te liggen. Alleen: Wat doe ik fout?
De javascript code:
Als ik dit uitvoer krijg ik een media player te zien, maar als ik op Play klik blijft het scherm zwart, en word er niks afgespeelt. Ik kan die player ook niet echt lekker debuggen, dus waar het precies mee te maken heeft weet ik niet.
Via Google kom ik op de term 'streamscript' die ik als variabele mee kan geven aan de player, en de code daarvan heb ik ook deels overgenomen in de php code, alleen ook dan krijg ik het niet afgespeelt.
Iemand die me op weg kan helpen?
Voor een systeem wat ik aan het schrijven ben is het de bedoeling dat de videobestanden via een FLV player worden afgespeeld. Daarnaast is het niet de bedoeling dat de gebruiker niet te zien krijgt waar de FLV bestanden zijn opgeslagen, hoe ze heten, etc.
Kortom, de bedoeling is dat PHP de FLV bestanden aanlevert, in plaats van http://localhost/upload/video/video.flv zou het dan http://localhost/video.php?id=1 moeten worden. Het lijkt mij dat ik PHP gewoon de opdracht kan geven om een FLV bestand uit te spugen, en dat vervolgens als argument aan een FLV player mee te geven.
Mijn code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| function stream() { $file = $this->config['root']['path']."upload\\video\\".$this->filename; if(isset($_GET['pos'])) { $pos = $_GET['pos']; } else { intval($_GET['pos']); } header("Content-Type: video/x-flv"); header("Content-Length: ".filesize($file)); if($pos > 0) { echo "FLV"; echo pack("C", 1); echo pack("C", 1); echo pack("N", 9); echo pack("N", 9); } $handle = fopen($file, "rb"); fseek($handle, $pos); fpassthru($handle); fclose($handle); } |
Dit levert een werkend flv bestand op. Als ik de output hiervan opsla, en afspeel met iets als Media Player Classic werkt het gewoon. Het probleem lijkt dan ook in de javascript van de JW FLV Media Player te liggen. Alleen: Wat doe ik fout?
De javascript code:
code:
1
2
3
4
5
6
7
8
| <script type="text/javascript"> var s1 = new SWFObject("mediaplayer.swf","mediaplayer","300","185","8"); s1.addParam("allowfullscreen","true"); s1.addVariable("width","300"); s1.addVariable("height","185"); s1.addVariable("file", "video.php?id=1"); s1.write("container"); </script> |
Als ik dit uitvoer krijg ik een media player te zien, maar als ik op Play klik blijft het scherm zwart, en word er niks afgespeelt. Ik kan die player ook niet echt lekker debuggen, dus waar het precies mee te maken heeft weet ik niet.
Via Google kom ik op de term 'streamscript' die ik als variabele mee kan geven aan de player, en de code daarvan heb ik ook deels overgenomen in de php code, alleen ook dan krijg ik het niet afgespeelt.
Iemand die me op weg kan helpen?
It might sound as if I have no clue what I'm doing, but I actually have a vague idea.