├── tv.ico ├── default.aproj ├── dist └── demo.jpg ├── res ├── styles │ ├── images │ │ ├── app.png │ │ ├── live.png │ │ ├── logo.jpg │ │ ├── open.png │ │ ├── pause.png │ │ ├── play.png │ │ ├── setting.png │ │ └── volume.png │ ├── base.css │ └── main.css ├── about.html └── main.html ├── lib └── web │ └── layout │ └── behavior │ ├── main │ ├── player.aau │ ├── playerControl.aau │ ├── button.aau │ └── channle.aau │ └── about │ └── link.aau ├── README.md ├── config └── 1.ini ├── form └── about.aau └── main.aau /tv.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikza/tv/HEAD/tv.ico -------------------------------------------------------------------------------- /default.aproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikza/tv/HEAD/default.aproj -------------------------------------------------------------------------------- /dist/demo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikza/tv/HEAD/dist/demo.jpg -------------------------------------------------------------------------------- /res/styles/images/app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikza/tv/HEAD/res/styles/images/app.png -------------------------------------------------------------------------------- /res/styles/images/live.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikza/tv/HEAD/res/styles/images/live.png -------------------------------------------------------------------------------- /res/styles/images/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikza/tv/HEAD/res/styles/images/logo.jpg -------------------------------------------------------------------------------- /res/styles/images/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikza/tv/HEAD/res/styles/images/open.png -------------------------------------------------------------------------------- /res/styles/images/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikza/tv/HEAD/res/styles/images/pause.png -------------------------------------------------------------------------------- /res/styles/images/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikza/tv/HEAD/res/styles/images/play.png -------------------------------------------------------------------------------- /res/styles/images/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikza/tv/HEAD/res/styles/images/setting.png -------------------------------------------------------------------------------- /res/styles/images/volume.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikza/tv/HEAD/res/styles/images/volume.png -------------------------------------------------------------------------------- /lib/web/layout/behavior/main/player.aau: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikza/tv/HEAD/lib/web/layout/behavior/main/player.aau -------------------------------------------------------------------------------- /lib/web/layout/behavior/main/playerControl.aau: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikza/tv/HEAD/lib/web/layout/behavior/main/playerControl.aau -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## TV player 2 | A simple video player for http/ftp/mms/rtsp/rtmp/hls/m3u 3 | 4 | update: 5 | Jan,1 auto detect channel change 6 | Dec,20 add local file play support 7 | 8 | ## demo 9 |  10 | -------------------------------------------------------------------------------- /lib/web/layout/behavior/about/link.aau: -------------------------------------------------------------------------------- 1 | /* 2 | * tv 3 | * https://github.com/hikdo 4 | * January 1,2017 5 | */ 6 | namespace web.layout.behavior.about.link { 7 | 8 | onMouseClick = function( ltTarget,ltOwner,x,y,ltMouseParams ) { 9 | 10 | var link = ltOwner.getCustomAttribute("link"); 11 | if(link) { 12 | import process; 13 | process.execute(link); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/web/layout/behavior/main/button.aau: -------------------------------------------------------------------------------- 1 | /* 2 | * tv 3 | * https://github.com/hikdo 4 | * January 1,2017 5 | */ 6 | namespace web.layout.behavior.main.button{ 7 | 8 | onMouseClick = { 9 | 10 | aboutBtn = function( ltTarget,ltOwner,x,y,ltMouseParams ) { 11 | var aboutForm = ..mainForm.loadForm("/form/about.aau"); 12 | aboutForm.doModal(..mainForm.hwnd); 13 | } 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /config/1.ini: -------------------------------------------------------------------------------- 1 | test1,http://dlhls.cdn.zhanqi.tv/zqlive/36799_8JBTz.m3u8 2 | test2,http://dlhls.cdn.zhanqi.tv/zqlive/46455_xR2MZ.m3u8 3 | mp4,http://127.0.0.1/test.mp4 4 | wmv,http://127.0.0.1/test.wmv 5 | mov,http://127.0.0.1/test.mov 6 | flv,http://127.0.0.1/test.flv 7 | rmvb,http://127.0.0.1/test.rmvb 8 | rtmp,rtmp://127.0.0.1/test 9 | mms,mms://127.0.0.1/test 10 | rstp,rstp://127.0.0.1/test 11 | ftp,ftp://127.0.0.1/test.rmvb 12 | hflv,http://127.0.0.1/test.hflv 13 | mkv,http://127.0.0.1/test.mkv 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /form/about.aau: -------------------------------------------------------------------------------- 1 | /* 2 | * tv 3 | * https://github.com/hikdo 4 | * January 1,2017 5 | */ 6 | 7 | import win.ui; 8 | /*DSG{{*/ 9 | var winform = ..win.form(text="TV";right=408;bottom=187;border="none") 10 | winform.add() 11 | /*}}*/ 12 | 13 | import web.layout; 14 | import web.layout.behavior.windowCommand; 15 | import web.layout.behavior.windowSizer; 16 | import web.layout.behavior.about.link; 17 | 18 | var wbLayout = web.layout( winform ) 19 | wbLayout.go("/res/about.html") ; 20 | import win.ui.shadow; 21 | win.ui.shadow(winform); 22 | winform.show() 23 | win.loopMessage(); 24 | return winform; 25 | -------------------------------------------------------------------------------- /lib/web/layout/behavior/main/channle.aau: -------------------------------------------------------------------------------- 1 | /* 2 | * tv 3 | * https://github.com/hikdo 4 | * January 1,2017 5 | */ 6 | namespace web.layout.behavior.main.channle{ 7 | 8 | var curChannel = null; 9 | 10 | onMouseClick = function( ltTarget,ltOwner,x,y,ltMouseParams ) { 11 | 12 | if(ltMouseParams.button_state == 1/*_HL_MAIN_MOUSE_BUTTON*/) { 13 | var link = ltOwner.getCustomAttribute("link"); 14 | if(link) { 15 | if(..web.layout.behavior.main.player.aPlayer.getConfig(4) != link) { 16 | if(curChannel != null) { 17 | curChannel.setAttribute("selected",""); 18 | } 19 | curChannel = ltOwner; 20 | ltOwner.setAttribute("selected","selected"); 21 | ..web.layout.behavior.main.player.aPlayer.close(); 22 | ..web.layout.behavior.main.player.aPlayer.open(link); 23 | } 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /res/about.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 11 | 12 |