घुटने पर MP4 दिखाने के लिए Yii विस्तार

हम Yii पर एक परियोजना तैयार कर रहे हैं, जिसमें उपयोगकर्ता MP4 प्रारूप में छोटी सामग्रियों को पोस्ट करने और देखने के लिए, अन्य चीजों में सक्षम होंगे। उन्होंने खिलाड़ी के लिए कई समाधान सुझाए, मैंने JW प्लेयर पर बने रहने का फैसला किया। उन्होंने सफलतापूर्वक परीक्षण किया। यह Yii के लिए उचित विस्तार को जल्दी से लिखने के लिए बना हुआ है।
बिल्ली के नीचे, कदम से कदम, जहां टिप्पणियों के साथ एक्सटेंशन कोड डाउनलोड और सूचीबद्ध करना है।


मैं तुरंत स्वीकार करता हूं कि यह मेरा पहला अनुभव है जो न केवल Yii के लिए एक एक्सटेंशन लिख रहा है, बल्कि सामान्य रूप से इस ढांचे के साथ काम कर रहा है।

और ऐसा है। सबसे पहले longtailvideo.com पर जाएं और JW प्लेयर को डाउनलोड करें । परिणामी संग्रह को अनपैक करें। वहां से हमें फाइलों की आवश्यकता होगी: jwplayer.js, swfobject.js और player.swf। हम आपकी Yii परियोजना के विस्तार (यानी, संरक्षित / एक्सटेंशन में) के साथ निर्देशिका में एक निर्देशिका jwplayer बनाते हैं (यह हमारा विस्तार कैसे कहा जाएगा), इसमें हम संपत्ति निर्देशिका बनाते हैं। हम इसमें आर्काइव से 3 फाइलें रखते हैं (यानी, वह पूरा रास्ता जहाँ आप jwplayer.js, swfobject.js और player.swf रखना चाहते हैं: यह इस तरह होगा: संरक्षित / एक्सटेंशन / jwplayer (संपत्ति)।

अब हम सीधे एक्सटेंशन बनाने के लिए सीधे आगे बढ़ते हैं। डायरेक्टरी संरक्षित / एक्सटेंशन / jwplayer में JWplayer.php फ़ाइल बनाएँ। इसमें, हम अपने विजेट के लिए हमारी कक्षा का वर्णन करेंगे।

निम्नलिखित टिप्पणियों के साथ इस फ़ाइल की एक कोड सूची है।

<?php /* * JWplayer widget class file. * JWplayer extends CWidget * @version 1.0 - 20110516 * @author skarah <skarah@mail.ru> * @copyright Copyright © 2011 skarah * @license New BSD License http://www.opensource.org/licenses/bsd-license.php */ class JWplayer extends CWidget { /** *     -. * * @var array */ public $_options = array( // ID  'id' => 'playerID', //     'width' => 480, //     'height' => 270, //    'file' => '', //    - 'flashplayer' => '', ); /** *     options. * * @var array */ public $options = array(); /** *   assets. */ public function init() { $this->publishAssets(); } /** *      */ public function run() { /* *         */ extract($this->_options); /* *    */ extract($this->options); echo "<div id='mediaplayer'></div> <script type=\"text/javascript\"> jwplayer('mediaplayer').setup({ 'id': '{$id}', 'width': '{$width}', 'height': '{$height}', 'file': '{$file}', 'flashplayer': '{$flashplayer}', 'modes': [{type: 'flash', src: '{$flashplayer}'}] }); </script>"; } protected function publishAssets() { /* *   assets */ $assets = dirname(__FILE__) . '/assets'; $baseUrl = Yii::app()->assetManager->publish($assets); if (is_dir($assets)) { /* *      - */ $this->_options['flashplayer'] = $baseUrl . '/player.swf'; /* *  js   */ Yii::app()->clientScript->registerScriptFile($baseUrl . '/jwplayer.js', CClientScript::POS_HEAD); Yii::app()->clientScript->registerScriptFile($baseUrl . '/swfobject.js', CClientScript::POS_HEAD); } else { throw new Exception(' JWplayer:     assets  .'); } } } 


सब कुछ तैयार है। हमारे वीडियो विजेट को एक दृश्य में या एक रूप में लॉन्च करना संभव है (यह है कि कोई भी व्यक्ति इसे कैसे कॉल करना पसंद करता है), इसके लिए यह निम्नलिखित कोड डालने के लिए पर्याप्त होगा:
 $this->widget('application.extensions.jwplayer.JWplayer', array( 'options' => array( 'file' => '/path_to/my_mp4file.mp4' ), )); 


सब कुछ पसंद है। आपका ध्यान देने के लिए धन्यवाद।

Source: https://habr.com/ru/post/In119368/


All Articles