BAB I FlOWPLAYER
1.1 Menganilis Dan Mencontoh Kesuksesan Web Multimedia
Salah satu web multimedia berbasis video streaming yang cukup terkenal adalah youtube. Siapa yang tidak kenal youtube? Hampir seluruh pengguna internet mengenal youtube. Selain tampilan situsnya yang menarik youtube juga menyediakan berbagai macam video yang siap dinikmati.
Oke . Langsung aja ya . Sekarang kita juga akan membuat web yang tata letaknya menyerupai youtube dan metacafe dalam penempatan video. Untuk Lebih jelas perhatikan gambar dibawah ini.
Dari tampilan halaman youtube terlihat content (video player) berada di sebelah kiri atas. Masalah penempatan content memang terlihat sepele namun sangat berpengaruh terhadap kesuksesan sebuah web. Untuk contoh yang kedua merupakan tampilan halaman dari metacafe. Metacafe merupakan salah satu web video streaming yang juga cukup populer, berikut screen shotnya.
Dari kedua gambar terlihat content (video player) berada di sebelah kiri atas. Dari berbagai web video streaming yang penulis amati hampir seluruhnya meletakan content (video player) di bagian kiri atas. Sekarang kita juga akan merancang modul untuk menampilkan video streaming seperti berikut
berfungsi sebagai media yang digunakan untuk memutar atau memainkan video berbasis browser, jadi kita akan membahas sedikit mengenai flowpleyer pada bab ini.
Beberap format file yang dapat diputar oleh flowplyer antara lain : MP4 MOV FLV Penulis menyarankan sebaiknya menggunakan format video flv, karena ini merupakan jenis video yang paling cocok untuk dijalankan melalui web, karena ukuran file flv yang relative kecil membuat format video ini banyak diminati dikalangan web video streming. Oke langsung aja ya dari pada saya banyak basi-basi ^_^. Contoh Implementasi Flowplayer Skrip flowplayer.php
<html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!-- Ini merupakan untuk menghubungjan flowplayer-3.2.4.min.js --> <script type="text/javascript" src="flowplayer-3.2.4.min.js"></script> <link rel="stylesheet" type="text/css" href="style.css"> <title>Contoh Pemaangan Flowplayer</title> </head><body> <div id="page"> <h1>Contoh Pemasangan Flowplayer</h1> <p>Contoh Pemasangan Flowplayer Dengan Tampilan Sederhana.</p> <!-- tes.flv merupakan video yang akan di putar atau di mainkan --> <a href="tes.flv" style="display:block;width:520px;height:330px" id="player"> </a> <script> flowplayer("player", "flowplayer-3.2.5.swf"); </script> </div> </body></html>
Sekarang coba jalankan skrip flowplayer.php di localhost lalu tekan play, bagaimana? Apakah video berhasil diputar. Tes.flv dapat diganti dengan nama video atau bisa disesuaikan sendiri dengan video yang ada. Untuk lebih jelasnya berikut tampilan skrip flowplayer.php setelah dijalankan.
Pada bab-bab selanjutnya akan di bahas bagaimana cara membuat modul video pada lokojQuery (Lokomedia versi jQuery).
Dalam pengalaman penulis, mengupload video ke server hosting bukanlah sesuatu hal yang menyenangkan, karena video pada umumnya berukuran besar, apalagi jika koneksi internet sedang lemot.. !!! Bisa-bisa mau update satu video baru aja butuh waktu sampe 1 jam. Itu baru satu video, gimana coba kalau kita mau memasukan video satu album . Bayangkan, bisa satu harian gak selesai
Disini penulis mempunyai sebuah alternatif, kita bisa memasukan video youtube ke dalam flowplayer kita, jadi videonya kita ambil dari youtube dan dimainkan melalui flowplyer kita (catatan : video youtube dimasukan ke flowplayer kita bukan dimasukan ke web kita). Caranya untuk bisa memasukan video ke flowplayer kita, cukup mengkopi url yang ada di youtube .itu saja .. gimana mudahkan, tidak perlu waktu berjam-jam lagi untuk update video satu album. Untuk lebih jelas perhatikan gambar berikut.
Dari gambar 1.4 terlihat alamat url youtube yaitu http://www.youtube.com/watch?v=NRdHsuuXxfk untuk Memasukan video tersebut cukup hanya masukan kode setelah v= jadi kode yang kita masukan ke dalam flowplyayer yaitu NRdHsuuXxfk. Trus gimana jika alamat urlnya seperti ini http://www.youtube.com/watch?v=tXKCP8OwiKQ&feature=topvideos kode yang kita masukan yaitu diantara v= dan &, maka kode yang kita gunakan untuk flowplayer menjadi tXKCP8OwiKQ . Untuk lebih jelasnya tulis skrip flowplayer-youtube.html dan jalankan dilocalhost. flowplayer-youtube.html
<html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="flowplayer-3.2.4.min.js"></script> <link rel="stylesheet" type="text/css" href="style.css"> <title>Contoh Pemasangan Flowplayer</title> </head><body> <div id="page"> <h1>Contoh Pemasangan Flowplayer</h1> <p>Contoh Pemasangan Flowplayer Dengan Tampilan Sederhana, <br> Menggunakan Video yang Berasal dari Youtube.</p> <!-- masukan kode youtube setelah api: seperti yang di jelaskan --> <a href="api:tXKCP8OwiKQ" style="display:block;width:520px;height:330px" id="youtube" > </a> <script> function showRelatedList(gdata, container) { var relatedVideos = gdata.relatedVideos; var content = '<em>Related Videos:</em>'; content += '<a class="go up"></a><div class="playlist"><div class="clips low">'; jQuery.each( relatedVideos, function(index, item){ content += '<a href="'+ item.url +'" '+ (index==0 ? 'class="first"' : "") +'>'; content += item.title + "<br/>"; content += "<em>" + Math.round(item.duration / 60) + " min</em></a>"; }); content += '</div></div><a class="go down"></a>'; $(container).html(content);
showRelatedList(gdata, "#playlistContainer"); } } }, clip: { provider: 'youtube', urlResolvers: 'youtube' } }).playlist("div.clips"); </script> </div> </body></html>
Catatan : Karena menggunakan url dari youtube maka, untuk melihat hasil dari skrip flowplayer-youtube.html, Komputer harus terhubung ke internet.
Tabel 2.1 Struktur tabel video. Kolom id_video id_playalist username jdl_video video_deo keterangan gbr_video video youtube dilihat hari tanggal jam tagvid Tipe int int varchar varchar varchar text varchar varchar varchar int varchar date time varchar Panjang 5 5 30 100 100 100 100 100 7 20 Keterangan Primary Key Auto Increment
Default : 1
100
Buatlah tabel video dengan struktur tabel seperti di atas, untuk membuatnya masuk ke phpmyadmin, lalu pilih database dblokomedia, pada pilihan Create new table on database dblokomedi masukan nama tabel, dan pada pilihan Number of fields masukan jumlah kolom, Setelah itu Klik tombol Go.
Tahap selanjutnya isi nama tabel, tipe, panjang dan keterangan seperti pada tabel 2.1, kemudian klik save maka akan terlihat struktur tabel seperti gambar di bawah ini.
Sampai disini kita telah selesai membuat tabel video, pada pembahasan berikutnya akan dijelaskan bagaimana membuat tabel playlist.
Default : Y 10
Buatlah tabel playlist dengan struktur tabel seperti pada Tabel 2.2(Struktur tabel playlist), untuk membuatnya masuk ke phpmyadmin, lalu pilih database dblokomedia, pada pilihan Create new table on database dblokomedi masukan nama tabel, dan pada pilihan Number of fields masukan jumlah kolom, Setelah itu Klik tombol Go.
Tahap selanjutnya isi nama tabel, tipe, panjang dan keterangan seperti pada tabel 2.2, kemudian klik save maka akan terlihat struktur tabel seperti gambar 2.4.
Tabel playlist sudah selesai dibuat langkah selanjutnya membuat tabel tag, tapi tag untuk video kita beri nama tagvid, dimana video akan dikaitkan satu sama lain melalui tabel ini.
Tabel 2.3 Struktur tabel tagvid. Kolom id_tag Nama_tag Tipe int varchar Panjang 5 100 11 Keterangan Primary Key Auto Increment
tag_seo count
varchar int
100 5
Buatlah tabel tagvid dengan struktur tabel seperti pada Tabel 2.3 (Struktur tabel tagvid), untuk membuatnya masuk ke phpmyadmin, lalu pilih database dblokomedia, pada pilihan Create new table on database dblokomedi masukan nama tabel, dan pada pilihan Number of fields masukan jumlah kolom, Setelah itu Klik tombol Go.
Seperti yang telah dijelaskan pada halaman sebelumnya, tahap selanjutnya isi nama tabel, tipe, panjang dan keterangan seperti pada tabel 2.3, kemudian klik save maka akan terlihat struktur tabel seperti gambar 2.6.
Tabel
tagvid
(tag
video)
sudah
selesai
dibuat
langkah
selanjutnya
membuat
tabel
komentarvid(komentar video), tapi tag untuk video kita beri nama tagvid, dimana tabel ini akan berisi komentar yang diberikan pengunjung mengenai video yang di tampilkan.
(Y,N)
Default : Y
Buatlah tabel tagvid dengan struktur tabel seperti pada Tabel 2.4 (Struktur tabel komentarvid), untuk membuatnya masuk ke phpmyadmin, lalu pilih database dblokomedia, pada pilihan Create new table on database dblokomedi masukan nama tabel, dan pada pilihan Number of fields masukan jumlah kolom, Setelah itu Klik tombol Go.
Langkah selanjutnya isi isi nama tabel, tipe, panjang dan keterangan seperti pada tabel 2.4, kemudian klik save maka akan terlihat struktur tabel seperti gambar 2.8.
Selesai sudah pembahasan kita pada bab ini, keempat tabel yang akan digunakan untuk video streaming sudah kita buat. Pada pembahasan selanjutnya akan dibahas bagaiman mengintegrasikan, antara tabel video, css style (tampilan video streaming) dan skrip php yang menangani video. ..^_^ 13
2.5 Membuat Scroll Video Terbaru di Halaman Pengunjung Dengan Efek Tooltips
Scroll Video yang dimasksud adalah scroll video yang akan menampilkan sepuluh video tebaru yang di upload oleh administrator web. Dimana scroll video ini nantinya akan di lengkapi dengan efek tooltips yang berisi judul video. Scroll Video yang digunakan dalam pembahasan ini merupakan scrollable gallery with tooltips yang berrasal dari flowplayer.org. Tampilan awal scrollable gallery with tooltips terlihat seperti gambar 2.9 berikut ini.
Pada pembahasan selanjutkan kita akan membahas bagaimana cara memodifikasi scrollable gallery with tooltips yang berrasal dari flowplayer.org, sehingga bisa kita integrasikan dengan modul video yang akan kita buat. ^_^ Tampilan Scroll Video terbaru yang akan kita buat terlihat seperti gambar 2.10
Setiap video yang diupload akan di wakili oleh sebuah gambar. Seperti yang terlihat pada gambar 2.10 masing-masing gambar mewakili satu judul video. Pada pembahasan selanjutnya akan dibahas bagaimana memasukan dan mengedit template Lokojquery (Lokomedia Versi Jquery), oleh sebab itu penulis menyarankan untuk membackup file template terlebih dahulu.
14
Kita akan membuat template baru untuk lokomedia cms, template ini kita beri nama video. Caranya copy folder eljequery yang ada di folder templates lalu paste dengan nama video. Gambar susunan direktorinya terlihat seperti gambar 2.11 berikuti ini.
Setelah itu buka file tempate.php yang ada di folder video, dengan menggunakan macromedia dreamweaver, seperti terlihat pada gambar 2.12. dan 2.13.
Pada gambar 2.13 perhatikan source code yang di blok, pada bagian yang diblok kita akan menyisipkan source code yang nantinya akan digunakan untuk memanggil file pendukung video scroll. ^_^ ini dia source codenya.
15
<link rel="stylesheet" type="text/css" href="<?php echo "$f[folder]/css/scrollable-horizontal.css" ?>"> <link rel="stylesheet" type="text/css" href="<?php echo "$f[folder]/css/scrollable-buttons.css"?>">
Ketik source code diatas dan letekan dibaris ke 26 perhatikan gambar 2.13. Source code diletakan dibawah <link rel="stylesheet" href="<?php echo "$f[folder]/css/style.css" ?>" type="text/css" />. Kemudian ketik Code berikut <script type="text/javascript" src="<?php echo "$f[folder]/js/jquery.js" ?>"></script>
Code di atas diletakan dibawah <script src="<?php echo "$f[folder]/js/jquery-1.4.js" ?>" type="text/javascript"></script>. Tampilan file template.php setelah diedit akan terlihat seperti gambar 2.14.
Setelah itu pada baris ke 122 atau dibawah </div> <!-- /header --> , ketik source code video scroll.
Berikut source code yang diketikan di baris 122 (di antara <!-- /header --> dan <!-- CONTENT -->)
display:block; float:left; margin:20px 15px; } #tooltip { display:none; background:url(<?php echo "$f[folder]/css/img/black_arrow.png" ?>); font-size:12px; height:70px; width:160px; padding:25px; color:#fff; } #gallery .disabled { visibility:visible !important; } #gallery .inactive { visibility:hidden !important; } </style> <a class="prevPage browse left disabled"></a> <div class="scrollable"> <div class="items"> <?php $videoterbaru="SELECT * FROM video order by id_video desc LIMIT 10"; $queryvideo=mysql_query($videoterbaru); while($tampilvideo=mysql_fetch_array($queryvideo)){ echo "<a title='$tampilvideo[jdl_video]' class='' href='play$tampilvideo[id_video]-$tampilvideo[video_seo].html' ><img src='img_video/kecil_$tampilvideo[gbr_video]' ></a>"; } ?> </div> </div> <div style="position: absolute; top: 59px; left: 606px; display: none;" id="tooltip">The bronze statue</div> <a class="nextPage browse right"></a> <br clear="all"> <script> $(document).ready(function() { $(".scrollable").scrollable().find("a").tooltip({ tip: '#tooltip' }).gallery({ disabledClass: 'inactive' }); 17
}); </script> </div> </div> File template.php telah selesai kita edit, tahap selanjutnya adalah mengedit style.css dan headline.css
2.5.2 Mengedit style.css dan headline.css Buka folder css yang ada dalam folder video. Karena kita akan melakukan editing terhadap dua buah file css, yaitu , style.css dan headline.css. Pada gambar 2.16 terlihat susunan direktori templates\video\css.
Setelah membuka folder templates\video\css serrperti terlihat pada gambar 2.16, edit file style.css menggunakan dreamweaver. Untuk lebih jelas lihat potongan source code style.css Style.css #wrapper { width: 960px; background: url(../images/bg_content.jpg) repeat-y top left; margin: 0 auto;/* center the page in Firefox */ text-align: left; position: relative; <------- ini di hapus } Perhatikan source style.css cari #wrapper kemudian hapus position:relative;. File style.css yang telah diedit menjadi seperti berikut: Style.css #wrapper { width: 960px; background: url(../images/bg_content.jpg) repeat-y top left; 18
Langkah selanjutnya cari #content maka akan terlihat source code seperti berikut: Style.css #content { display: block; float: left; clear: left; width: 630px; padding: 20px; margin: 0 0 30px 0; clear: both; text-align: justify; font-size: 0.9em; } Tambahkan position:relative;. Pada baris paling akhir di bagian content maka source codenya menjadi seperti berikut ini: Style.css #content { display: block; float: left; clear: left; width: 630px; padding: 20px; margin: 0 0 30px 0; clear: both; text-align: justify; font-size: 0.9em; position: relative; <------- code yang di tambahkan } Kamudian pada baris paling bawah style.css tambahkan source code videoterbaru dan bingkaivideo berikut : videoterbaru #videoterbaru { background-color: #333; width: 765px; margin-right: auto; margin-left: auto; margin-top: 0px; } bingkaivideo #bingkaivideo { 19
background-color: #333; width: 910px; margin-right: auto; margin-left: auto; margin-top: 0px; border:1px solid #0f0; } File style.css telah selesai kita edit selanjutnya, buka file headline.css, dan cari .t{ lalu edit maka akan terlihat source seperti berikut: Headline.css
.t{ width:340px; position:absolute; height:38px; top: 584px; left:24px;
edit top: 584px; menjadi top: 247px; maka hasilnya akan menjadi seperti berikut ini Headline.css
.t{ width:340px; position:absolute; height:38px; top: 247px; left:24px;
sampai tahap ini kita telah selesai membuat scroll video dengan tooltips hasilnya akan terlihat seperti gambar 2.17 berikuti ini.
Pada gambar 2.17 tampak tampilan scroll video yang masih kosong, hal tersebut terjadi karena kita belum memasukan video, jadi tampilan scroll videonya masih kosong.
Untuk bisa membuat halaman play video kita akan mengedit beberapa file. File yang akan kita edit adalah template.php, kiri.php, headline.css dan style.css yang ada pada folder template/video. Sebelum melakkukan editing file ada baiknya kalau membackup kedua file tersebut. Berikut ini adalah tampilan play video yang akan kita buat. Seperti terlihat pada gambar 2.18 20
Oke .. sampai disini udah tau kan, tampilan play video yang akan kita buat? ^_^ Buka file tempate.php yang ada di folder video, dengan menggunakan macromedia dreamweaver, seperti terlihat pada gambar 2.19..
Pada gambar 2.19 perhatikan source code yang di blok, pada bagian yang diblok kita akan menyisipkan source code yang nantinya akan digunakan untuk memanggil file pendukung play video. ini dia source codenya.
<script type="text/javascript" src="<?php echo "$f[folder]/js/flowplayer3.2.4.min.js" ?>"> </script>
Ketik source code diatas dan letekan dibaris ke 29 perhatikan gambar 2.19. Source code diletakan di atas <script src="<?php echo "$f[folder]/js/jquery-1.4.js" ?>" type="text/javascript"></script>. Tampilan file template.php setelah diedit akan terlihat seperti gambar 2.20
21
Setelah itu pada baris paling bawah template.php tambahkan source code dibawah ini. <?php if ($iyasrini==2){ ?> <script> flowplayer("player", "<?php echo "$f[folder]/flowplayer-3.2.5.swf" ?>", { clip: { autoPlay: false, autoBuffering: true, }, onLoad: function() { loading this.setVolume(35); } }); </script> <?php } elseif ($iyasrini==1){ ?> <script> function showRelatedList(gdata, container) { var relatedVideos = gdata.relatedVideos; var content = '<em>Related Videos:</em>'; content += '<a class="go up"></a><div class="playlist"><div class="clips low">'; jQuery.each( relatedVideos, function(index, item){ content += '<a href="'+ item.url +'" '+ (index==0 ? 'class="first"' : "") +'>'; content += item.title + "<br/>"; content += "<em>" + Math.round(item.duration / 60) + " min</em></a>"; }); content += '</div></div><a class="go down"></a>'; $(container).html(content); $("div.playlist").scrollable({ 22 // called when player has finished // set volume property
items:'div.clips', vertical:true, next:'a.down', prev:'a.up' }); } $f("youtube", "<?php echo "$f[folder]/flowplayer-3.2.5.swf" ?>", { plugins: { youtube: { url:'flowplayer.youtube-3.2.1.swf', enableGdata: true, onApiData: function(gdata) { console.log(gdata); showRelatedList(gdata, "#playlistContainer"); } } }, onLoad: function() { this.setVolume(35); }, clip: { autoPlay: false, autoBuffering: true, provider: 'youtube', urlResolvers: 'youtube' } }).playlist("div.clips"); </script> <?php } ?>
Setelah source di atas ditambahkan ke template.php lalu simpan. Tahap selanjutnya buka file kiri.php yang ada pada direktori template/video. Pada baris ke enam tepat dibawah <div id="content"> kita akan menambahkan source code play video, berikut ini adalah gambar file kiri.php sebelum di edit.
23
Berikut ini adalah source code yang diletakan di kiri.php pada baris ke enam. <?php $detail888=mysql_query("SELECT * FROM video ORDER BY dilihat DESC limit 1"); $d888 = mysql_fetch_array($detail888); if($d888[video]==''){ $iyasrini="1"; $detail=mysql_query("SELECT * FROM video,users WHERE users.username=video.username ORDER BY dilihat DESC limit 1"); $d = mysql_fetch_array($detail); echo "<span class=judul>$d[jdl_video]</span><br />"; echo "<span class=posting>Diposting oleh : <b>$d[nama_lengkap]</b><br /></span>"; echo "<div id='video'>"; echo "<a title='$d[keterangan]' href='api:$d[youtube]' style='display:block;width:550px;height:360px' id='youtube'> </a>"; echo "</div>"; } else { $iyasrini="2"; $detail=mysql_query("SELECT * FROM video,users WHERE users.username=video.username ORDER BY dilihat DESC limit 1"); $d = mysql_fetch_array($detail); echo "<span class=judul>$d[jdl_video]</span><br />"; echo "<span class=posting>Diposting oleh : <b>$d[nama_lengkap]</b><br /></span>"; echo "<div id='video'>"; echo "<a title='$d[keterangan]' href='img_video/$d[video]' style='display:block;width:550px;height:360px' id='player'> </a>"; echo "</div>"; }
24
echo "<br>"; ?> Langkah selanjutnya yaitu menambahkan source pada style.css. Buka file style.css yang ada pada folder video/css, pada style.css tambahkan source berikut ini. #video { background-color:#333; width:620px; min-height:420px; border:2px solid #0F0; outline:1px solid #333; text-align:left; margin-right: auto; margin-left: auto; } #video a { color:#295c72; margin-right: auto; margin-left: auto; margin-top: 30px; } Pada headline.css rubah Width:340px; position:absolute; height:38px; top: 247px; left:24px; menjadi Width:340px; position:absolute; height:38px; top: 726.5px; left:24px; langkah selanjutnya copy file Flowplayer-3.2.5.swf Flowplayer.controls-3.2.3.swf Flowplayer.youtube-3.2.1.swf Semua file di atas letakan di folder templates\video serta copy file flowplayer-3.2.4.min.js dan letakan di folder templates\video\js.
25