Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
OLAT CI-CD Testing Project
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Requirements
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Package Registry
Container Registry
Model registry
Operate
Terraform modules
Monitor
Service Desk
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Lars Oliver Dam
OLAT CI-CD Testing Project
Commits
b8c27d8a
Commit
b8c27d8a
authored
5 years ago
by
srosse
Browse files
Options
Downloads
Patches
Plain Diff
OO-4303: responsive by javascript for nanoo.tv
parent
36a1cdad
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/main/webapp/static/movie/player.js
+44
-4
44 additions, 4 deletions
src/main/webapp/static/movie/player.js
src/main/webapp/static/movie/player.min.js
+1
-1
1 addition, 1 deletion
src/main/webapp/static/movie/player.min.js
with
45 additions
and
5 deletions
src/main/webapp/static/movie/player.js
+
44
−
4
View file @
b8c27d8a
...
...
@@ -143,6 +143,8 @@ var BPlayer = {
.
attr
({
id
:
'
mediaelementplayercss
'
,
type
:
'
text/css
'
,
rel
:
'
stylesheet
'
})
.
attr
(
'
href
'
,
mediaElementcss
);
}
BPlayer
.
_loadNanooResize
(
domId
,
frameName
,
config
);
var
poster
=
"
<div id='
"
+
frameName
+
"
' class='mejs__container' role='application' style='width:
"
+
config
.
width
+
"
px; height:
"
+
config
.
height
+
"
px; overflow:hidden; overflow-x:hidden; overflow-y:hidden;'>
"
+
"
<div class='mejs__layers'>
"
...
...
@@ -150,8 +152,9 @@ var BPlayer = {
+
"
<div class='mejs__overlay mejs__layer mejs__overlay-play' style='width: 100%; height: 100%; z-index:10;'><div class='mejs__overlay-button' style='z-index:10;' role='button' tabindex='0' aria-label='Play' aria-pressed='false'></div></div>
"
+
"
</div>
"
+
"
</div>
"
;
jQuery
(
'
#
'
+
domId
).
append
(
jQuery
(
poster
));
jQuery
(
'
#
'
+
domId
).
css
(
"
border
"
,
"
none
"
);
var
jDomEl
=
jQuery
(
'
#
'
+
domId
);
jDomEl
.
append
(
jQuery
(
poster
));
jDomEl
.
css
(
"
border
"
,
"
none
"
);
jQuery
(
'
#
'
+
domId
+
'
div.mejs__overlay-button
'
).
on
(
'
click
'
,
function
(
el
,
index
)
{
var
cloneConfig
=
{
file
:
config
.
file
,
...
...
@@ -168,6 +171,8 @@ var BPlayer = {
jQuery
(
'
#
'
+
frameName
).
remove
();
}
BPlayer
.
_loadNanooResize
(
domId
,
frameName
,
config
);
var
url
=
config
.
file
;
var
parts
=
url
.
split
(
'
?
'
);
var
nanooId
=
parts
[
0
].
substring
(
url
.
lastIndexOf
(
'
/
'
)
+
1
);
...
...
@@ -181,8 +186,43 @@ var BPlayer = {
+
'
" style="width:
'
+
config
.
width
+
'
px; height:
'
+
config
.
height
+
'
px; overflow:hidden;"
'
+
'
frameborder="0" allow="fullscreen" allowfullscreen="true"
'
+
'
></iframe>
'
;
jQuery
(
'
#
'
+
domId
).
append
(
jQuery
(
iframe
));
jQuery
(
'
#
'
+
domId
).
css
(
"
border
"
,
"
none
"
);
var
jDomEl
=
jQuery
(
'
#
'
+
domId
);
jDomEl
.
append
(
jQuery
(
iframe
));
jDomEl
.
css
(
"
border
"
,
"
none
"
);
},
_loadNanooResize
:
function
(
domId
,
frameName
,
config
)
{
try
{
var
jDomEl
=
jQuery
(
'
#
'
+
domId
);
var
parentContainer
=
jDomEl
.
parent
(
"
p , div
"
);
if
(
parentContainer
.
length
==
1
&&
typeof
config
.
width
!==
"
undefined
"
&&
typeof
config
.
height
!==
"
undefined
"
)
{
var
containerWidth
=
jQuery
(
parentContainer
).
width
();
var
originalWidth
=
config
.
width
;
var
originalHeight
=
config
.
height
;
if
(
containerWidth
<
originalWidth
)
{
var
ratio
=
originalHeight
/
originalWidth
;
var
tw
=
containerWidth
;
var
th
=
((
containerWidth
*
ratio
)
|
0
);
config
.
width
=
tw
;
config
.
height
=
th
;
}
jQuery
(
window
).
resize
(
function
()
{
var
container
=
jQuery
(
'
#
'
+
domId
).
parent
(
"
p , div
"
);
var
cWidth
=
jQuery
(
container
).
width
();
if
(
cWidth
<
originalWidth
)
{
var
ratio
=
originalHeight
/
originalWidth
;
var
tw
=
cWidth
;
var
th
=
((
cWidth
*
ratio
)
|
0
);
jQuery
(
'
#
'
+
frameName
)
.
width
(
tw
+
"
px
"
)
.
height
(
th
+
"
px
"
);
}
}).
trigger
(
'
resize
'
);
}
}
catch
(
e
)
{
if
(
window
.
console
)
console
.
log
(
e
);
}
},
/*
...
...
This diff is collapsed.
Click to expand it.
src/main/webapp/static/movie/player.min.js
+
1
−
1
View file @
b8c27d8a
var
BPlayer
=
{
insertPlayer
:
function
(
l
,
d
,
c
,
m
,
b
,
e
,
j
,
h
,
n
,
a
,
g
,
k
,
f
){
BPlayer
.
insertHTML5Player
(
l
,
d
,
c
,
m
,
b
,
e
,
j
,
h
,
n
,
a
,
g
,
k
,
f
)},
insertHTML5Player
:
function
(
c
,
g
,
n
,
m
,
e
,
a
,
p
,
t
,
s
,
k
,
o
,
l
,
j
){
var
f
=
c
;
if
(
c
.
indexOf
(
"
://
"
)
<
0
&&
(
c
.
indexOf
(
"
/raw/static/
"
)
==
0
||
c
.
indexOf
(
"
/secstatic/qtieditor/
"
)
>=
0
||
c
.
indexOf
(
"
/secstatic/qti/
"
)
>=
0
)){
f
=
c
}
else
{
if
(
c
.
indexOf
(
"
://
"
)
<
0
&&
((
p
!=
"
rtmp
"
&&
p
!=
"
http
"
)
||
((
p
==
"
rtmp
"
||
p
==
"
http
"
)
&&
(
t
==
undefined
||
t
.
length
==
0
)))){
var
d
=
document
.
location
.
href
;
f
=
d
.
substring
(
0
,
d
.
lastIndexOf
(
"
/
"
));
if
(
c
.
indexOf
(
"
/
"
)
!=
0
){
f
+=
"
/
"
}
f
+=
c
}}
var
b
=
{
file
:
f
,
width
:
n
,
height
:
m
,
controlbar
:{
position
:
"
bottom
"
}};
if
(
typeof
p
!=
"
undefined
"
){
b
.
provider
=
p
}
if
(
p
==
"
rtmp
"
||
p
==
"
http
"
){
b
.
streamer
=
t
}
if
(
typeof
e
!=
"
undefined
"
){
var
h
=
BPlayer
.
_convertInSeconds
(
e
);
if
(
h
>
0
){
b
.
start
=
h
}}
if
(
typeof
a
!=
"
undefined
"
){
var
r
=
BPlayer
.
_convertInSeconds
(
a
);
if
(
r
>
0
){
b
.
duration
=
r
}}
if
(
typeof
s
!=
"
undefined
"
&&
s
){
b
.
autostart
=
true
}
if
(
typeof
k
!=
"
undefined
"
&&
k
){
b
.
repeat
=
"
single
"
}
if
(
typeof
o
!=
"
undefined
"
&&!
o
){
b
.
controlbar
=
"
none
"
}
if
(
typeof
l
!=
"
undefined
"
&&
l
){
b
.
image
=
l
}
if
(
typeof
j
!=
"
undefined
"
){
b
.
errorCallback
=
j
}
else
{
b
.
errorCallback
=
function
(
u
,
w
,
v
){}}
if
(
BPlayer
.
_needJWPlayerFallback
(
b
)){
b
.
flashplayer
=
BPlayer
.
_jwPlayerBaseUrl
()
+
"
movieViewer.swf
"
;
var
q
=
function
(){
jwplayer
(
g
).
setup
(
b
)};
BPlayer
.
_loadJWPlayer
(
q
)}
else
{
if
(
p
==
"
nanoo
"
||
f
.
indexOf
(
"
nanoo.tv/
"
)
>=
0
){
BPlayer
.
_loadNanooTv
(
g
,
b
)}
else
{
var
q
=
function
(){
BPlayer
.
_insertHTML5MediaElementPlayerWorker
(
g
,
b
)};
BPlayer
.
loadMediaelementJsPlayer
(
q
)}}},
loadMediaelementJsPlayer
:
function
(
d
){
var
a
=
BPlayer
.
_mediaElementBaseUrl
();
var
c
=
a
+
(
BPlayer
.
debugEnabled
?
"
mediaelementplayer.css
"
:
"
mediaelementplayer.min.css
"
);
var
b
=
a
+
(
BPlayer
.
debugEnabled
?
"
mediaelement-and-player.js
"
:
"
mediaelement-and-player.min.js
"
);
if
(
jQuery
(
"
#mediaelementplayercss
"
).
length
==
0
){
jQuery
(
"
<link>
"
).
appendTo
(
"
head
"
).
attr
({
id
:
"
mediaelementplayercss
"
,
type
:
"
text/css
"
,
rel
:
"
stylesheet
"
}).
attr
(
"
href
"
,
c
)}
if
(
typeof
jQuery
(
"
body
"
).
mediaelementplayer
!=
"
undefined
"
){
if
(
d
){
d
()}}
else
{
jQuery
.
ajax
({
dataType
:
"
script
"
,
cache
:
true
,
async
:
false
,
url
:
b
}).
done
(
function
(){
if
(
d
){
d
()}})}},
_loadNanooTv
:
function
(
c
,
b
){
var
a
=
c
+
"
_frame
"
;
for
(
i
=
jQuery
(
"
#
"
+
a
).
length
;
i
-->
0
;){
jQuery
(
"
#
"
+
a
).
remove
()}
if
(
b
.
image
===
undefined
||
b
.
image
===
null
||
b
.
image
.
length
==
0
){
BPlayer
.
_loadNanooTvFrame
(
c
,
a
,
b
)}
else
{
BPlayer
.
_loadNanooTvPoster
(
c
,
a
,
b
)}},
_loadNanooTvPoster
:
function
(
e
,
a
,
b
){
if
(
jQuery
(
"
#mediaelementplayercss
"
).
length
==
0
){
var
c
=
BPlayer
.
_mediaElementBaseUrl
();
var
d
=
c
+
(
BPlayer
.
debugEnabled
?
"
mediaelementplayer.css
"
:
"
mediaelementplayer.min.css
"
);
jQuery
(
"
<link>
"
).
appendTo
(
"
head
"
).
attr
({
id
:
"
mediaelementplayercss
"
,
type
:
"
text/css
"
,
rel
:
"
stylesheet
"
}).
attr
(
"
href
"
,
d
)}
var
f
=
"
<div id='
"
+
a
+
"
' class='mejs__container' role='application' style='width:
"
+
b
.
width
+
"
px; height:
"
+
b
.
height
+
"
px; overflow:hidden; overflow-x:hidden; overflow-y:hidden;'><div class='mejs__layers'><div class='mejs__poster mejs__layer' style='background-image: url(
"
+
b
.
image
+
"
); width: 100%; height: 100%;'><img src='
"
+
b
.
image
+
"
' width='0' height='0'></img></div><div class='mejs__overlay mejs__layer mejs__overlay-play' style='width: 100%; height: 100%; z-index:10;'><div class='mejs__overlay-button' style='z-index:10;' role='button' tabindex='0' aria-label='Play' aria-pressed='false'></div></div></div></div>
"
;
jQuery
(
"
#
"
+
e
).
append
(
jQuery
(
f
));
jQuery
(
"
#
"
+
e
).
css
(
"
border
"
,
"
none
"
);
jQuery
(
"
#
"
+
e
+
"
div.mejs__overlay-button
"
).
on
(
"
click
"
,
function
(
j
,
h
){
var
g
=
{
file
:
b
.
file
,
width
:
b
.
width
,
height
:
b
.
height
,
autostart
:
true
};
BPlayer
.
_loadNanooTvFrame
(
e
,
a
,
g
)})},
_loadNanooTvFrame
:
function
(
g
,
b
,
d
){
for
(
i
=
jQuery
(
"
#
"
+
b
).
length
;
i
-->
0
;){
jQuery
(
"
#
"
+
b
).
remove
()}
var
c
=
d
.
file
;
var
f
=
c
.
split
(
"
?
"
);
var
a
=
f
[
0
].
substring
(
c
.
lastIndexOf
(
"
/
"
)
+
1
);
if
(
d
.
autostart
){
c
=
"
https://www.nanoo.tv/link/w/
"
+
a
}
else
{
c
=
"
https://www.nanoo.tv/link/n/
"
+
a
}
var
e
=
'
<iframe name="
'
+
b
+
'
" id="
'
+
b
+
'
" src="
'
+
c
+
'
" style="width:
'
+
d
.
width
+
"
px; height:
"
+
d
.
height
+
'
px; overflow:hidden;" frameborder="0" allow="fullscreen" allowfullscreen="true"></iframe>
'
;
jQuery
(
"
#
"
+
g
).
append
(
jQuery
(
e
));
jQuery
(
"
#
"
+
g
).
css
(
"
border
"
,
"
none
"
)},
_loadJWPlayer
:
function
(
a
){
if
(
BPlayer
.
_isIE8
()
&&
domId
!=
"
prev_container
"
&&
jQuery
(
"
#
"
+
domId
).
is
(
"
span
"
)){
alert
(
"
This is video is not supported on Internet Explorer 8. Sorry for the inconvenience
"
)}
else
{
jQuery
.
getScript
(
BPlayer
.
_jwPlayerBaseUrl
()
+
"
player.jw.js
"
,
function
(){
if
(
a
){
a
()}})}},
_needJWPlayerFallback
:
function
(
a
){
if
(
a
.
provider
==
"
rtmp
"
){
if
(
a
.
file
.
match
(
/
(
.*
)\/((
flv|mp4|mp3
)
:.*
)
/
)){
return
false
}
else
{
return
true
}}
return
false
},
_insertHTML5MediaElementPlayerWorker
:
function
(
e
,
d
){
var
k
=
BPlayer
.
_mediaElementBaseUrl
();
var
l
=
{
loop
:
d
.
repeat
,
pluginPath
:
k
,
stretching
:
"
responsive
"
,
hls
:{
path
:
k
+
"
hls/hls.min.js
"
},
flv
:{
path
:
k
+
"
flv/flv.min.js
"
,
withCredentials
:
true
},
error
:
d
.
errorCallback
,
success
:
function
(
o
,
q
,
p
){
if
(
d
.
start
){
p
.
load
();
o
.
addEventListener
(
"
canplay
"
,
function
(){
try
{
o
.
removeEventListener
(
"
canplay
"
);
p
.
setCurrentTime
(
d
.
start
);
p
.
play
();
if
(
!
d
.
autostart
){
setTimeout
(
function
(){
p
.
pause
()},
100
)}}
catch
(
s
){
if
(
window
.
console
){
console
.
log
(
s
)}}})}
else
{
if
(
d
.
autostart
){
try
{
p
.
load
();
p
.
play
()}
catch
(
r
){
if
(
window
.
console
){
console
.
log
(
r
)}}}}}};
var
a
=
null
;
var
n
=
d
.
file
.
split
(
"
.
"
).
pop
().
toLowerCase
().
split
(
"
&
"
).
shift
();
if
(
d
.
provider
==
"
sound
"
){
if
(
n
==
"
mp3
"
){
a
=
"
audio/mp3
"
}
else
{
if
(
n
==
"
aac
"
){
a
=
"
audio/aac
"
}
else
{
if
(
n
==
"
m4a
"
){
a
=
"
audio/mp4
"
}}}}
else
{
if
(
d
.
provider
==
"
youtube
"
){
a
=
"
video/youtube
"
}
else
{
if
(
d
.
provider
==
"
vimeo
"
){
a
=
"
video/vimeo
"
}
else
{
if
(
d
.
provider
==
"
rtmp
"
){
l
.
flashStreamer
=
d
.
streamer
;
a
=
"
video/rtmp
"
}
else
{
if
(
d
.
provider
==
"
http
"
){
d
.
enablePseudoStreaming
=
true
;
if
(
n
==
"
flv
"
){
a
=
"
video/flv
"
;
l
.
renderers
=
[
"
flash_video
"
,
"
native_flv
"
]}
else
{
a
=
"
video/mp4
"
}}
else
{
if
(
n
==
"
flv
"
){
a
=
"
video/flv
"
;
l
.
renderers
=
[
"
flash_video
"
,
"
native_flv
"
]}
else
{
if
(
n
==
"
f4v
"
){
a
=
"
video/flv
"
}
else
{
if
(
n
==
"
mp4
"
){
a
=
"
video/mp4
"
}
else
{
if
(
n
==
"
m4v
"
){
a
=
"
video/mp4
"
}
else
{
if
(
n
==
"
m3u8
"
){
a
=
"
application/x-mpegURL
"
}
else
{
if
(
n
==
"
aac
"
){
a
=
"
audio/mp4
"
;
d
.
provider
=
"
sound
"
}
else
{
if
(
n
==
"
mp3
"
){
a
=
"
audio/mp3
"
;
d
.
provider
=
"
sound
"
}
else
{
if
(
n
==
"
m4a
"
){
a
=
"
audio/mp4
"
;
d
.
provider
=
"
sound
"
}
else
{
if
(
d
.
file
.
indexOf
(
"
vimeo.com
"
)
>-
1
){
a
=
"
video/vimeo
"
}
else
{
if
(
d
.
file
.
indexOf
(
"
youtube.com
"
)
>-
1
||
d
.
file
.
indexOf
(
"
youtu.be
"
)
>-
1
||
d
.
file
.
indexOf
(
"
youtube.be
"
)
>-
1
){
a
=
"
video/youtube
"
}
else
{
if
(
n
.
indexOf
(
"
mp4?
"
)
==
0
){
a
=
"
video/mp4
"
}
else
{
if
(
d
.
file
.
indexOf
(
"
openmeetings/recording
"
)
>
0
){
a
=
"
video/mp4
"
}
else
{
alert
(
"
Something go badly wrong!
"
+
d
.
provider
+
"
"
+
n
)}}}}}}}}}}}}}}}}}
var
j
;
var
c
=
e
+
"
_oo
"
+
Math
.
floor
(
Math
.
random
()
*
1000000
)
+
"
vid
"
;
var
f
=
e
+
"
_oo
"
+
Math
.
floor
(
Math
.
random
()
*
1000000
)
+
"
obj
"
;
if
(
d
.
provider
==
"
sound
"
){
if
(
d
.
height
){
l
.
audioHeight
=
d
.
height
}
if
(
d
.
width
){
l
.
audioWidth
=
d
.
width
}
j
=
"
<audio id='
"
+
c
+
"
' controls='controls' oncontextmenu='return false;'
"
;
if
(
typeof
d
.
repeat
!=
"
undefined
"
&&
d
.
repeat
){
j
+=
"
loop='loop'
"
}
var
b
=
"
<object id='
"
+
f
+
"
' type='application/x-shockwave-flash'
"
;
if
(
typeof
d
.
height
!=
"
undefined
"
){
j
+=
"
height='
"
+
d
.
height
+
"
'
"
;
b
+=
"
height='
"
+
d
.
height
+
"
'
"
;
l
.
videoHeight
=
d
.
height
}
if
(
typeof
d
.
width
!=
"
undefined
"
){
j
+=
"
width='
"
+
d
.
width
+
"
'
"
;
b
+=
"
width='
"
+
d
.
width
+
"
'
"
;
l
.
videoWidth
=
d
.
width
}
if
(
typeof
d
.
image
!=
"
undefined
"
){
j
+=
"
poster='
"
+
d
.
image
+
"
'
"
}
j
+=
"
><source type='
"
+
a
+
"
' src='
"
+
d
.
file
+
"
'>
"
;
var
g
=
"
mediaelement-flash-video.swf
"
;
if
(
a
==
"
audio/mp3
"
){
g
=
"
mediaelement-flash-audio.swf
"
}
else
{
if
(
a
==
"
audio/ogg
"
){
g
=
"
mediaelement-flash-audio-ogg.swf
"
}}
j
+=
b
+
"
data='
"
+
k
+
g
+
"
'>
"
;
j
+=
"
<param name='movie' value='
"
+
k
+
g
+
"
' />
"
;
j
+=
"
<param name='flashvars' value='controls=true&
"
;
if
(
typeof
d
.
streamer
!=
"
undefined
"
){
j
+=
"
&streamer=
"
+
d
.
streamer
}
j
+=
"
&file=
"
+
d
.
file
+
"
' /></object>
"
;
j
+=
"
</audio>
"
}
else
{
j
=
"
<video id='
"
+
c
+
"
' controls='controls' preload='none' oncontextmenu='return false;'
"
;
if
(
typeof
d
.
repeat
!=
"
undefined
"
&&
d
.
repeat
){
j
+=
"
loop='loop'
"
}
var
b
=
"
<object id='
"
+
f
+
"
' type='application/x-shockwave-flash'
"
;
if
(
typeof
d
.
height
!=
"
undefined
"
){
l
.
videoHeight
=
d
.
height
}
if
(
typeof
d
.
width
!=
"
undefined
"
){
l
.
videoWidth
=
d
.
width
}
if
(
typeof
d
.
image
!=
"
undefined
"
){
j
+=
"
poster='
"
+
d
.
image
+
"
'
"
}
j
+=
"
><source type='
"
+
a
+
"
' src='
"
+
d
.
file
+
"
' />
"
;
j
+=
b
+
"
data='
"
+
k
+
"
mediaelement-flash-video.swf'>
"
;
j
+=
"
<param name='movie' value='
"
+
k
+
"
mediaelement-flash-video.swf' />
"
;
j
+=
"
<param name='flashvars' value='controls=true
"
;
if
(
typeof
d
.
streamer
!=
"
undefined
"
){
j
+=
"
&streamer=
"
+
d
.
streamer
}
j
+=
"
&file=
"
+
d
.
file
+
"
' /></object></video>
"
}
var
h
=
jQuery
(
"
#
"
+
e
);
h
.
css
({
height
:
""
});
h
.
css
({
border
:
"
none
"
});
if
(
jQuery
(
window
).
width
()
<=
d
.
width
){
h
.
css
({
width
:
""
})}
h
.
html
(
j
);
if
(
a
==
"
video/vimeo
"
){
var
k
=
BPlayer
.
_mediaElementBaseUrl
();
var
m
=
k
+
(
BPlayer
.
debugEnabled
?
"
renderers/vimeo.js
"
:
"
renderers/vimeo.min.js
"
);
jQuery
.
ajax
({
dataType
:
"
script
"
,
cache
:
true
,
async
:
false
,
url
:
m
}).
done
(
function
(){
jQuery
(
"
#
"
+
c
).
mediaelementplayer
(
l
)})}
else
{
jQuery
(
"
#
"
+
c
).
mediaelementplayer
(
l
)}},
_mediaElementBaseUrl
:
function
(){
var
a
=
BPlayer
.
_findBaseUrl
(
window
);
if
(
a
==
null
){
a
=
"
/olat/raw/_noversion_/
"
}
a
+=
"
movie/mediaelementjs/
"
;
return
a
},
_isIE8
:
function
(){
return
(
jQuery
.
support
.
opacity
==
false
)},
_jwPlayerBaseUrl
:
function
(){
var
a
=
BPlayer
.
_findBaseUrl
(
window
);
if
(
a
==
null
){
a
=
"
/olat/raw/_noversion_/
"
}
a
+=
"
movie/jw/
"
;
return
a
},
_findBaseUrl
:
function
(
a
){
if
(
a
.
o_info
){
return
a
.
o_info
.
o_baseURI
}
else
{
if
(
a
.
opener
){
return
BPlayer
.
_findBaseUrl
(
a
.
opener
)}
else
{
if
(
a
.
parent
){
return
BPlayer
.
_findBaseUrl
(
a
.
parent
)}
else
{
return
null
}}}},
_convertInSeconds
:
function
(
d
){
if
(
typeof
d
==
"
undefined
"
||
d
==
null
){
return
0
}
if
(
!
d
.
length
){
return
d
}
if
(
d
.
length
==
0
){
return
0
}
if
(
d
.
indexOf
(
"
.
"
)
>
0
){
d
=
d
.
substring
(
0
,
d
.
indexOf
(
"
.
"
))}
var
e
=
d
.
lastIndexOf
(
"
:
"
);
if
(
e
>
0
){
var
c
=
d
.
substring
(
e
+
1
,
d
.
length
);
var
a
=
parseInt
(
c
);
d
=
d
.
substring
(
0
,
e
);
e
=
d
.
lastIndexOf
(
"
:
"
);
if
(
e
>
0
){
var
b
=
d
.
substring
(
e
+
1
,
d
.
length
);
a
+=
60
*
parseInt
(
b
)}
d
=
d
.
substring
(
0
,
e
);
if
(
d
.
length
>
0
){
a
+=
60
*
60
*
parseInt
(
d
)}
return
a
}
else
{
return
d
}},
_isOODebug
:
function
(
a
){
if
(
a
.
o_info
){
return
a
.
o_info
.
debug
}
else
{
if
(
a
.
opener
){
return
BPlayer
.
_isOODebug
(
a
.
opener
)}
else
{
if
(
a
.
parent
){
return
BPlayer
.
_isOODebug
(
a
.
parent
)}
else
{
return
false
}}}}};
BPlayer
.
debugEnabled
=
BPlayer
.
_isOODebug
(
window
);
\ No newline at end of file
var
BPlayer
=
{
insertPlayer
:
function
(
l
,
d
,
c
,
m
,
b
,
e
,
j
,
h
,
n
,
a
,
g
,
k
,
f
){
BPlayer
.
insertHTML5Player
(
l
,
d
,
c
,
m
,
b
,
e
,
j
,
h
,
n
,
a
,
g
,
k
,
f
)},
insertHTML5Player
:
function
(
c
,
g
,
n
,
m
,
e
,
a
,
p
,
t
,
s
,
k
,
o
,
l
,
j
){
var
f
=
c
;
if
(
c
.
indexOf
(
"
://
"
)
<
0
&&
(
c
.
indexOf
(
"
/raw/static/
"
)
==
0
||
c
.
indexOf
(
"
/secstatic/qtieditor/
"
)
>=
0
||
c
.
indexOf
(
"
/secstatic/qti/
"
)
>=
0
)){
f
=
c
}
else
{
if
(
c
.
indexOf
(
"
://
"
)
<
0
&&
((
p
!=
"
rtmp
"
&&
p
!=
"
http
"
)
||
((
p
==
"
rtmp
"
||
p
==
"
http
"
)
&&
(
t
==
undefined
||
t
.
length
==
0
)))){
var
d
=
document
.
location
.
href
;
f
=
d
.
substring
(
0
,
d
.
lastIndexOf
(
"
/
"
));
if
(
c
.
indexOf
(
"
/
"
)
!=
0
){
f
+=
"
/
"
}
f
+=
c
}}
var
b
=
{
file
:
f
,
width
:
n
,
height
:
m
,
controlbar
:{
position
:
"
bottom
"
}};
if
(
typeof
p
!=
"
undefined
"
){
b
.
provider
=
p
}
if
(
p
==
"
rtmp
"
||
p
==
"
http
"
){
b
.
streamer
=
t
}
if
(
typeof
e
!=
"
undefined
"
){
var
h
=
BPlayer
.
_convertInSeconds
(
e
);
if
(
h
>
0
){
b
.
start
=
h
}}
if
(
typeof
a
!=
"
undefined
"
){
var
r
=
BPlayer
.
_convertInSeconds
(
a
);
if
(
r
>
0
){
b
.
duration
=
r
}}
if
(
typeof
s
!=
"
undefined
"
&&
s
){
b
.
autostart
=
true
}
if
(
typeof
k
!=
"
undefined
"
&&
k
){
b
.
repeat
=
"
single
"
}
if
(
typeof
o
!=
"
undefined
"
&&!
o
){
b
.
controlbar
=
"
none
"
}
if
(
typeof
l
!=
"
undefined
"
&&
l
){
b
.
image
=
l
}
if
(
typeof
j
!=
"
undefined
"
){
b
.
errorCallback
=
j
}
else
{
b
.
errorCallback
=
function
(
u
,
w
,
v
){}}
if
(
BPlayer
.
_needJWPlayerFallback
(
b
)){
b
.
flashplayer
=
BPlayer
.
_jwPlayerBaseUrl
()
+
"
movieViewer.swf
"
;
var
q
=
function
(){
jwplayer
(
g
).
setup
(
b
)};
BPlayer
.
_loadJWPlayer
(
q
)}
else
{
if
(
p
==
"
nanoo
"
||
f
.
indexOf
(
"
nanoo.tv/
"
)
>=
0
){
BPlayer
.
_loadNanooTv
(
g
,
b
)}
else
{
var
q
=
function
(){
BPlayer
.
_insertHTML5MediaElementPlayerWorker
(
g
,
b
)};
BPlayer
.
loadMediaelementJsPlayer
(
q
)}}},
loadMediaelementJsPlayer
:
function
(
d
){
var
a
=
BPlayer
.
_mediaElementBaseUrl
();
var
c
=
a
+
(
BPlayer
.
debugEnabled
?
"
mediaelementplayer.css
"
:
"
mediaelementplayer.min.css
"
);
var
b
=
a
+
(
BPlayer
.
debugEnabled
?
"
mediaelement-and-player.js
"
:
"
mediaelement-and-player.min.js
"
);
if
(
jQuery
(
"
#mediaelementplayercss
"
).
length
==
0
){
jQuery
(
"
<link>
"
).
appendTo
(
"
head
"
).
attr
({
id
:
"
mediaelementplayercss
"
,
type
:
"
text/css
"
,
rel
:
"
stylesheet
"
}).
attr
(
"
href
"
,
c
)}
if
(
typeof
jQuery
(
"
body
"
).
mediaelementplayer
!=
"
undefined
"
){
if
(
d
){
d
()}}
else
{
jQuery
.
ajax
({
dataType
:
"
script
"
,
cache
:
true
,
async
:
false
,
url
:
b
}).
done
(
function
(){
if
(
d
){
d
()}})}},
_loadNanooTv
:
function
(
c
,
b
){
var
a
=
c
+
"
_frame
"
;
for
(
i
=
jQuery
(
"
#
"
+
a
).
length
;
i
-->
0
;){
jQuery
(
"
#
"
+
a
).
remove
()}
if
(
b
.
image
===
undefined
||
b
.
image
===
null
||
b
.
image
.
length
==
0
){
BPlayer
.
_loadNanooTvFrame
(
c
,
a
,
b
)}
else
{
BPlayer
.
_loadNanooTvPoster
(
c
,
a
,
b
)}},
_loadNanooTvPoster
:
function
(
f
,
a
,
b
){
if
(
jQuery
(
"
#mediaelementplayercss
"
).
length
==
0
){
var
d
=
BPlayer
.
_mediaElementBaseUrl
();
var
e
=
d
+
(
BPlayer
.
debugEnabled
?
"
mediaelementplayer.css
"
:
"
mediaelementplayer.min.css
"
);
jQuery
(
"
<link>
"
).
appendTo
(
"
head
"
).
attr
({
id
:
"
mediaelementplayercss
"
,
type
:
"
text/css
"
,
rel
:
"
stylesheet
"
}).
attr
(
"
href
"
,
e
)}
BPlayer
.
_loadNanooResize
(
f
,
a
,
b
);
var
g
=
"
<div id='
"
+
a
+
"
' class='mejs__container' role='application' style='width:
"
+
b
.
width
+
"
px; height:
"
+
b
.
height
+
"
px; overflow:hidden; overflow-x:hidden; overflow-y:hidden;'><div class='mejs__layers'><div class='mejs__poster mejs__layer' style='background-image: url(
"
+
b
.
image
+
"
); width: 100%; height: 100%;'><img src='
"
+
b
.
image
+
"
' width='0' height='0'></img></div><div class='mejs__overlay mejs__layer mejs__overlay-play' style='width: 100%; height: 100%; z-index:10;'><div class='mejs__overlay-button' style='z-index:10;' role='button' tabindex='0' aria-label='Play' aria-pressed='false'></div></div></div></div>
"
;
var
c
=
jQuery
(
"
#
"
+
f
);
c
.
append
(
jQuery
(
g
));
c
.
css
(
"
border
"
,
"
none
"
);
jQuery
(
"
#
"
+
f
+
"
div.mejs__overlay-button
"
).
on
(
"
click
"
,
function
(
k
,
j
){
var
h
=
{
file
:
b
.
file
,
width
:
b
.
width
,
height
:
b
.
height
,
autostart
:
true
};
BPlayer
.
_loadNanooTvFrame
(
f
,
a
,
h
)})},
_loadNanooTvFrame
:
function
(
h
,
b
,
d
){
for
(
i
=
jQuery
(
"
#
"
+
b
).
length
;
i
-->
0
;){
jQuery
(
"
#
"
+
b
).
remove
()}
BPlayer
.
_loadNanooResize
(
h
,
b
,
d
);
var
c
=
d
.
file
;
var
g
=
c
.
split
(
"
?
"
);
var
a
=
g
[
0
].
substring
(
c
.
lastIndexOf
(
"
/
"
)
+
1
);
if
(
d
.
autostart
){
c
=
"
https://www.nanoo.tv/link/w/
"
+
a
}
else
{
c
=
"
https://www.nanoo.tv/link/n/
"
+
a
}
var
f
=
'
<iframe name="
'
+
b
+
'
" id="
'
+
b
+
'
" src="
'
+
c
+
'
" style="width:
'
+
d
.
width
+
"
px; height:
"
+
d
.
height
+
'
px; overflow:hidden;" frameborder="0" allow="fullscreen" allowfullscreen="true"></iframe>
'
;
var
e
=
jQuery
(
"
#
"
+
h
);
e
.
append
(
jQuery
(
f
));
e
.
css
(
"
border
"
,
"
none
"
)},
_loadNanooResize
:
function
(
f
,
h
,
d
){
try
{
var
m
=
jQuery
(
"
#
"
+
f
);
var
a
=
m
.
parent
(
"
p , div
"
);
if
(
a
.
length
==
1
&&
typeof
d
.
width
!==
"
undefined
"
&&
typeof
d
.
height
!==
"
undefined
"
){
var
n
=
jQuery
(
a
).
width
();
var
c
=
d
.
width
;
var
g
=
d
.
height
;
if
(
n
<
c
){
var
l
=
g
/
c
;
var
j
=
n
;
var
b
=
((
n
*
l
)
|
0
);
d
.
width
=
j
;
d
.
height
=
b
}
jQuery
(
window
).
resize
(
function
(){
var
e
=
jQuery
(
"
#
"
+
f
).
parent
(
"
p , div
"
);
var
p
=
jQuery
(
e
).
width
();
if
(
p
<
c
){
var
q
=
g
/
c
;
var
o
=
p
;
var
r
=
((
p
*
q
)
|
0
);
jQuery
(
"
#
"
+
h
).
width
(
o
+
"
px
"
).
height
(
r
+
"
px
"
)}}).
trigger
(
"
resize
"
)}}
catch
(
k
){
if
(
window
.
console
){
console
.
log
(
k
)}}},
_loadJWPlayer
:
function
(
a
){
if
(
BPlayer
.
_isIE8
()
&&
domId
!=
"
prev_container
"
&&
jQuery
(
"
#
"
+
domId
).
is
(
"
span
"
)){
alert
(
"
This is video is not supported on Internet Explorer 8. Sorry for the inconvenience
"
)}
else
{
jQuery
.
getScript
(
BPlayer
.
_jwPlayerBaseUrl
()
+
"
player.jw.js
"
,
function
(){
if
(
a
){
a
()}})}},
_needJWPlayerFallback
:
function
(
a
){
if
(
a
.
provider
==
"
rtmp
"
){
if
(
a
.
file
.
match
(
/
(
.*
)\/((
flv|mp4|mp3
)
:.*
)
/
)){
return
false
}
else
{
return
true
}}
return
false
},
_insertHTML5MediaElementPlayerWorker
:
function
(
e
,
d
){
var
k
=
BPlayer
.
_mediaElementBaseUrl
();
var
l
=
{
loop
:
d
.
repeat
,
pluginPath
:
k
,
stretching
:
"
responsive
"
,
hls
:{
path
:
k
+
"
hls/hls.min.js
"
},
flv
:{
path
:
k
+
"
flv/flv.min.js
"
,
withCredentials
:
true
},
error
:
d
.
errorCallback
,
success
:
function
(
o
,
q
,
p
){
if
(
d
.
start
){
p
.
load
();
o
.
addEventListener
(
"
canplay
"
,
function
(){
try
{
o
.
removeEventListener
(
"
canplay
"
);
p
.
setCurrentTime
(
d
.
start
);
p
.
play
();
if
(
!
d
.
autostart
){
setTimeout
(
function
(){
p
.
pause
()},
100
)}}
catch
(
s
){
if
(
window
.
console
){
console
.
log
(
s
)}}})}
else
{
if
(
d
.
autostart
){
try
{
p
.
load
();
p
.
play
()}
catch
(
r
){
if
(
window
.
console
){
console
.
log
(
r
)}}}}}};
var
a
=
null
;
var
n
=
d
.
file
.
split
(
"
.
"
).
pop
().
toLowerCase
().
split
(
"
&
"
).
shift
();
if
(
d
.
provider
==
"
sound
"
){
if
(
n
==
"
mp3
"
){
a
=
"
audio/mp3
"
}
else
{
if
(
n
==
"
aac
"
){
a
=
"
audio/aac
"
}
else
{
if
(
n
==
"
m4a
"
){
a
=
"
audio/mp4
"
}}}}
else
{
if
(
d
.
provider
==
"
youtube
"
){
a
=
"
video/youtube
"
}
else
{
if
(
d
.
provider
==
"
vimeo
"
){
a
=
"
video/vimeo
"
}
else
{
if
(
d
.
provider
==
"
rtmp
"
){
l
.
flashStreamer
=
d
.
streamer
;
a
=
"
video/rtmp
"
}
else
{
if
(
d
.
provider
==
"
http
"
){
d
.
enablePseudoStreaming
=
true
;
if
(
n
==
"
flv
"
){
a
=
"
video/flv
"
;
l
.
renderers
=
[
"
flash_video
"
,
"
native_flv
"
]}
else
{
a
=
"
video/mp4
"
}}
else
{
if
(
n
==
"
flv
"
){
a
=
"
video/flv
"
;
l
.
renderers
=
[
"
flash_video
"
,
"
native_flv
"
]}
else
{
if
(
n
==
"
f4v
"
){
a
=
"
video/flv
"
}
else
{
if
(
n
==
"
mp4
"
){
a
=
"
video/mp4
"
}
else
{
if
(
n
==
"
m4v
"
){
a
=
"
video/mp4
"
}
else
{
if
(
n
==
"
m3u8
"
){
a
=
"
application/x-mpegURL
"
}
else
{
if
(
n
==
"
aac
"
){
a
=
"
audio/mp4
"
;
d
.
provider
=
"
sound
"
}
else
{
if
(
n
==
"
mp3
"
){
a
=
"
audio/mp3
"
;
d
.
provider
=
"
sound
"
}
else
{
if
(
n
==
"
m4a
"
){
a
=
"
audio/mp4
"
;
d
.
provider
=
"
sound
"
}
else
{
if
(
d
.
file
.
indexOf
(
"
vimeo.com
"
)
>-
1
){
a
=
"
video/vimeo
"
}
else
{
if
(
d
.
file
.
indexOf
(
"
youtube.com
"
)
>-
1
||
d
.
file
.
indexOf
(
"
youtu.be
"
)
>-
1
||
d
.
file
.
indexOf
(
"
youtube.be
"
)
>-
1
){
a
=
"
video/youtube
"
}
else
{
if
(
n
.
indexOf
(
"
mp4?
"
)
==
0
){
a
=
"
video/mp4
"
}
else
{
if
(
d
.
file
.
indexOf
(
"
openmeetings/recording
"
)
>
0
){
a
=
"
video/mp4
"
}
else
{
alert
(
"
Something go badly wrong!
"
+
d
.
provider
+
"
"
+
n
)}}}}}}}}}}}}}}}}}
var
j
;
var
c
=
e
+
"
_oo
"
+
Math
.
floor
(
Math
.
random
()
*
1000000
)
+
"
vid
"
;
var
f
=
e
+
"
_oo
"
+
Math
.
floor
(
Math
.
random
()
*
1000000
)
+
"
obj
"
;
if
(
d
.
provider
==
"
sound
"
){
if
(
d
.
height
){
l
.
audioHeight
=
d
.
height
}
if
(
d
.
width
){
l
.
audioWidth
=
d
.
width
}
j
=
"
<audio id='
"
+
c
+
"
' controls='controls' oncontextmenu='return false;'
"
;
if
(
typeof
d
.
repeat
!=
"
undefined
"
&&
d
.
repeat
){
j
+=
"
loop='loop'
"
}
var
b
=
"
<object id='
"
+
f
+
"
' type='application/x-shockwave-flash'
"
;
if
(
typeof
d
.
height
!=
"
undefined
"
){
j
+=
"
height='
"
+
d
.
height
+
"
'
"
;
b
+=
"
height='
"
+
d
.
height
+
"
'
"
;
l
.
videoHeight
=
d
.
height
}
if
(
typeof
d
.
width
!=
"
undefined
"
){
j
+=
"
width='
"
+
d
.
width
+
"
'
"
;
b
+=
"
width='
"
+
d
.
width
+
"
'
"
;
l
.
videoWidth
=
d
.
width
}
if
(
typeof
d
.
image
!=
"
undefined
"
){
j
+=
"
poster='
"
+
d
.
image
+
"
'
"
}
j
+=
"
><source type='
"
+
a
+
"
' src='
"
+
d
.
file
+
"
'>
"
;
var
g
=
"
mediaelement-flash-video.swf
"
;
if
(
a
==
"
audio/mp3
"
){
g
=
"
mediaelement-flash-audio.swf
"
}
else
{
if
(
a
==
"
audio/ogg
"
){
g
=
"
mediaelement-flash-audio-ogg.swf
"
}}
j
+=
b
+
"
data='
"
+
k
+
g
+
"
'>
"
;
j
+=
"
<param name='movie' value='
"
+
k
+
g
+
"
' />
"
;
j
+=
"
<param name='flashvars' value='controls=true&
"
;
if
(
typeof
d
.
streamer
!=
"
undefined
"
){
j
+=
"
&streamer=
"
+
d
.
streamer
}
j
+=
"
&file=
"
+
d
.
file
+
"
' /></object>
"
;
j
+=
"
</audio>
"
}
else
{
j
=
"
<video id='
"
+
c
+
"
' controls='controls' preload='none' oncontextmenu='return false;'
"
;
if
(
typeof
d
.
repeat
!=
"
undefined
"
&&
d
.
repeat
){
j
+=
"
loop='loop'
"
}
var
b
=
"
<object id='
"
+
f
+
"
' type='application/x-shockwave-flash'
"
;
if
(
typeof
d
.
height
!=
"
undefined
"
){
l
.
videoHeight
=
d
.
height
}
if
(
typeof
d
.
width
!=
"
undefined
"
){
l
.
videoWidth
=
d
.
width
}
if
(
typeof
d
.
image
!=
"
undefined
"
){
j
+=
"
poster='
"
+
d
.
image
+
"
'
"
}
j
+=
"
><source type='
"
+
a
+
"
' src='
"
+
d
.
file
+
"
' />
"
;
j
+=
b
+
"
data='
"
+
k
+
"
mediaelement-flash-video.swf'>
"
;
j
+=
"
<param name='movie' value='
"
+
k
+
"
mediaelement-flash-video.swf' />
"
;
j
+=
"
<param name='flashvars' value='controls=true
"
;
if
(
typeof
d
.
streamer
!=
"
undefined
"
){
j
+=
"
&streamer=
"
+
d
.
streamer
}
j
+=
"
&file=
"
+
d
.
file
+
"
' /></object></video>
"
}
var
h
=
jQuery
(
"
#
"
+
e
);
h
.
css
({
height
:
""
});
h
.
css
({
border
:
"
none
"
});
if
(
jQuery
(
window
).
width
()
<=
d
.
width
){
h
.
css
({
width
:
""
})}
h
.
html
(
j
);
if
(
a
==
"
video/vimeo
"
){
var
k
=
BPlayer
.
_mediaElementBaseUrl
();
var
m
=
k
+
(
BPlayer
.
debugEnabled
?
"
renderers/vimeo.js
"
:
"
renderers/vimeo.min.js
"
);
jQuery
.
ajax
({
dataType
:
"
script
"
,
cache
:
true
,
async
:
false
,
url
:
m
}).
done
(
function
(){
jQuery
(
"
#
"
+
c
).
mediaelementplayer
(
l
)})}
else
{
jQuery
(
"
#
"
+
c
).
mediaelementplayer
(
l
)}},
_mediaElementBaseUrl
:
function
(){
var
a
=
BPlayer
.
_findBaseUrl
(
window
);
if
(
a
==
null
){
a
=
"
/olat/raw/_noversion_/
"
}
a
+=
"
movie/mediaelementjs/
"
;
return
a
},
_isIE8
:
function
(){
return
(
jQuery
.
support
.
opacity
==
false
)},
_jwPlayerBaseUrl
:
function
(){
var
a
=
BPlayer
.
_findBaseUrl
(
window
);
if
(
a
==
null
){
a
=
"
/olat/raw/_noversion_/
"
}
a
+=
"
movie/jw/
"
;
return
a
},
_findBaseUrl
:
function
(
a
){
if
(
a
.
o_info
){
return
a
.
o_info
.
o_baseURI
}
else
{
if
(
a
.
opener
){
return
BPlayer
.
_findBaseUrl
(
a
.
opener
)}
else
{
if
(
a
.
parent
){
return
BPlayer
.
_findBaseUrl
(
a
.
parent
)}
else
{
return
null
}}}},
_convertInSeconds
:
function
(
d
){
if
(
typeof
d
==
"
undefined
"
||
d
==
null
){
return
0
}
if
(
!
d
.
length
){
return
d
}
if
(
d
.
length
==
0
){
return
0
}
if
(
d
.
indexOf
(
"
.
"
)
>
0
){
d
=
d
.
substring
(
0
,
d
.
indexOf
(
"
.
"
))}
var
e
=
d
.
lastIndexOf
(
"
:
"
);
if
(
e
>
0
){
var
c
=
d
.
substring
(
e
+
1
,
d
.
length
);
var
a
=
parseInt
(
c
);
d
=
d
.
substring
(
0
,
e
);
e
=
d
.
lastIndexOf
(
"
:
"
);
if
(
e
>
0
){
var
b
=
d
.
substring
(
e
+
1
,
d
.
length
);
a
+=
60
*
parseInt
(
b
)}
d
=
d
.
substring
(
0
,
e
);
if
(
d
.
length
>
0
){
a
+=
60
*
60
*
parseInt
(
d
)}
return
a
}
else
{
return
d
}},
_isOODebug
:
function
(
a
){
if
(
a
.
o_info
){
return
a
.
o_info
.
debug
}
else
{
if
(
a
.
opener
){
return
BPlayer
.
_isOODebug
(
a
.
opener
)}
else
{
if
(
a
.
parent
){
return
BPlayer
.
_isOODebug
(
a
.
parent
)}
else
{
return
false
}}}}};
BPlayer
.
debugEnabled
=
BPlayer
.
_isOODebug
(
window
);
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment