23. maj 2007 - 12:49
Der er
7 kommentarer og
4 løsninger
Kalender eller datepicker til visning af wmv fil
Hej
Jeg søger et script, som kan afspille en wmvfil der er datostemplet.
Jeg tænker på en form for kalender. Når man vælger en bestemt dato, skal der i browseren afspilles denne dags datostemplet wmv video fil.
wmv filen har filnavnet: ååååmdddayvideo.wmv (eks. 2007522dayvideo.wmv)
Hvis det er muligt må browseren også gerne vise en datostemplet gif fil samtidig med at wmv filen bliver afspillet. Gif filen har datoformatet ååååmmdd.gif (eks. 20070522.gif)
På forhånd tak.
Ps. hvis der ikke findes en wmv eller gif fil for den valgte dag - må der gerne vises, at filerne ikke findes.
Se dette link med et eksempel på afspilning af wmv filen:
www.buskelundtoften.dk/vejret/video.aspJeg har fået en kammerat til at lave et asp script, som kan vise .gif filen - men det kniber lidt med at få wmv filen med.
Se eks:
www.buskelundtoften.dk/vejret/test
Jeg skal lige høre, hvad er det præcis, som skal gøres med videoen.
Har du kalenderen, eller hvordan?
Skal tjekkes, om den videoen findes, og hvis den gør, skal der indsættes en Windows Media Player-afspiller, som viser den?
Hej og tak for din tilbagemelding.
Nej - jeg har (desværre) ikke kalenderen.
Når man klikker på en dato i kalenderen - skal wmv filen afspilles i browseren. Se link:
www.buskelundtoften.dk/vejret/video.aspHvis der ikke findes en wmv for den valgte dag - må der gerne stå at der desværre ikke er video for denne dag.
Hvis det så skal være rigtig godt - kunne jeg godt tænke mig, at på samme side i browseren som wmv filen afspilles blev vist den datostemplede .gif fil.
Det er ikke afgørende for mig hvilket programmeringssprog scriptet kører - mit webhotel kører PHP, ASP, ASP.NET 1.1+2.0, Pearl
På forhånd tak
Jeg prøver at se, om jeg ikke får tid til at lave noget. Jeg er i gang med mine eksamener, så det er ikke helt 100%.
Hvordan skal kalenderen være, skal den fylde hele siden, eller må den være i et lille popup-vindue? Jeg mener, skal den bruges til andet, eller skal den kun bruges til at vælge en dato for at se videoklip for den givne dato?
Godt! Nu består det altså af 3 filer! Nr. 1 er filen, som viser kalenderen, filmen og animationen. Jeg er gået ud fra, at din film er af avi-format, men det kan nemt ændres. Ligeledes har jeg sat variablen strFoldername til "/upload/", dvs. at filerne skal ligge i mappen upload i roden af dit site, men det kan på samme måde også bare ændres efter behag. Du kan kalde denne fil, lige hvad du vil.
Nr. 2 er popup'en, som hedder calendarpopup.asp.
Og nr. 2 er popup'ens stylesheet, kaldet calenderpopup.css.
1) kalddenligehvadduvil.asp
-----------------------------------
<%strDate = date()
If Request.Form("calendar") <> "" Then strDate = Request.Form("calendar")%>
<form name="calendarform" method="post">
<input type="text" id="calendar" name="calendar" value="<%=strDate%>" readonly="readonly" onclick="CalPop('document.calendarform.calendar');">
<input type="button" value="Vælg dato" onclick="CalPop('document.calendarform.calendar');">
</form>
<script language="JavaScript" type="text/JavaScript">
function CalPop(sInputName)
{
window.open("calendarpopup.asp?N=" + escape(sInputName) + "&DT=" + escape(window.eval(sInputName).value), "calwin", "toolbar=0, status=no, titlebar=no, dependent=1, width=428, height=230");
}
</script>
<%strFoldername ="/upload/"
Set objFSO = CreateObject("Scripting.FileSystemObject")
strFilename = strDate & ".avi"
strFilepath = Server.MapPath(strFoldername & strFilename)
If objFSO.FileExists(strFilepath) = true Then
Response.Write "<p><embed src=""" & strFoldername & strFilename & """></embed></p>" & vbCrLf
End If
strFilename = strDate & ".gif"
strFilepath = Server.MapPath(strFoldername & strFilename)
If objFSO.FileExists(strFilepath) = true Then
Response.Write "<p><img alt=""" & strDate & """ border=""0"" src=""" & strFoldername & strFilename & """></p>" & vbCrLf
End If
Set objFS = nothing%>
------------------------------
2) calendarpopup.asp
------------------------------
<%@ Language=VBScript %>
<%Option Explicit%>
<%Response.Expires = -1
Session.LCID = 1030%>
<%
Dim m_dtCurrentDate 'Currently selected date/time
Dim m_lDayofFirst 'The day of the week that the first of the current month falls on
Dim m_lDaysInMonth 'Number of days in the selected month
Dim m_dtBegin 'Beginning date of the selected month
Dim m_dtEnd 'Ending date of the selected month
Dim m_lYear 'Currently selected Year
Dim m_lMonth 'Currently selected Month
Dim m_lDay 'Currently selected Day of the month
Dim m_sInputName 'Name of the input field from the parent page
Dim m_dtPassedInDate
Dim i
m_sInputName = Request.QueryString("N")
'Build the date/time from individual parts if there has been a post back.
'Otherwise, just get the current date/time.
If Request.QueryString("A") <> "" Then
m_lYear = Request.Form("fldYear")
m_lMonth = Request.Form("fldMonth")
m_lDay = Request.Form("fldDay")
'Fix the day of the month if we switch from a month that has less days in the month
'than the previously selected month and the day selected is not on the newly selected
'month (ie - going from March 31st and then selecting February which does not have a 31st.)
m_dtBegin = m_lMonth & "/1/" & m_lYear
m_dtEnd = DateAdd("m", 1, m_dtBegin)
m_lDaysInMonth = DateDiff("d", m_dtBegin, m_dtEnd)
If CLng(m_lDay) > CLng(m_lDaysInMonth) Then m_lDay = m_lDaysInMonth
'Build the Date
m_dtCurrentDate = m_lDay & "/" & m_lMonth & "/" & m_lYear
'If the date is not valid after all this then use the current date.
If IsDate(m_dtCurrentDate) Then
m_dtCurrentDate = CDate(m_dtCurrentDate)
Else
m_dtCurrentDate = Now()
End If
Else
m_dtPassedInDate = Request.QueryString("DT")
If CStr(m_dtPassedInDate) <> "" Then
If IsDate(m_dtPassedInDate) Then
m_dtCurrentDate = CDate(m_dtPassedInDate)
Else
m_dtCurrentDate = Now()
End If
Else
m_dtCurrentDate = Now()
End If
End If
'Break out certain parts of the currently selected date/time.
m_lYear = DatePart("yyyy", m_dtCurrentDate)
m_lMonth = DatePart("m", m_dtCurrentDate)
m_lDay = DatePart("d", m_dtCurrentDate)
m_dtBegin = CDate(DatePart("m", m_dtCurrentDate) & "/1/" & DatePart("yyyy", m_dtCurrentDate))
m_dtEnd = DateAdd("m", 1, m_dtBegin)
m_lDayofFirst = DatePart("w", m_dtBegin)
m_lDaysInMonth = DateDiff("d", m_dtBegin, m_dtEnd)
%>
<HTML>
<HEAD>
<TITLE>Kalender</TITLE>
<LINK rel="stylesheet" type="text/css" href="calendarpopup.css">
</HEAD>
<BODY bgcolor="#D4D0C8">
<FORM method=post action="?A=1&N=<%=m_sInputName%>" id=Form1 name=Form1>
<table class=overall cellpadding=0 cellspacing=10>
<tr>
<td>
<%DisplayCalendar%>
</td>
<td valign=top>
<table>
<tr>
<td class="Title">
Måned:<BR>
</td>
<td class="Title">
År:<BR>
</td>
</tr>
<tr>
<td>
<SELECT id=fldMonth name=fldMonth onchange="java script:document.Form1.submit();">
<%DisplayMonths%>
</SELECT>
</td>
<td>
<SELECT id=fldYear name=fldYear onchange="java script:document.Form1.submit();">
<%For i = Year(Now())-100 To Year(Now())
If i = m_lYear Then
Response.Write "<OPTION SELECTED>"
Else
Response.Write "<OPTION>"
End If
Response.Write i
Response.Write "</OPTION>" & vbCrLf
Next%>
</SELECT><BR>
</td>
</tr>
</table>
<BR><BR><BR><BR>
<INPUT type="button" value="OK" id=cmdOK name=cmdOK class=Button onclick="SetDateOnParent();window.opener.calendarform.submit();">
<INPUT type="button" value="Annuller" id=cmdCancel name=cmdCancel class=Button onclick="java script:window.close();">
</td>
</tr>
</table>
</FORM>
</BODY>
</HTML>
<%
Sub DisplayMonths
Dim arrMonths 'An array of months starting with January
Dim i 'counter
arrMonths = Array("Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December")
For i = 0 To UBound(arrMonths)
If CLng(i) = (CLng(m_lMonth) - 1) Then
Response.Write "<OPTION value=" & i + 1 & " SELECTED>" & arrMonths(i) & "</OPTION>"
Else
Response.Write "<OPTION value=" & i + 1 & ">" & arrMonths(i) & "</OPTION>"
End If
Next
End Sub
Sub DisplayCalendar
Dim arrDays 'An array of days starting with Sunday
Dim i 'counter
Dim lColumnCount 'Column Count
Dim lNumber 'For building the calendar
Dim bFinished 'For building the calendar
Dim bStart 'For building the calendar
arrDays = Array("Sø", "Ma", "Ti", "On", "To", "Fr", "Lø")
Response.Write "<table width=100 class='Calendar' cellpadding=4 cellspacing=0><tr class=Header>"
For i = 0 to Ubound(arrDays)
Response.write "<td>" & arrDays(i) & "</td>"
Next
lNumber = 1
bFinished = False
bStart = False
Do
Response.Write "<tr>"
For lColumnCount = 1 to 7
If CLng(lColumnCount) = CLng(m_lDayofFirst) Then
bStart = True
End If
If CLng(m_lDay) = CLng(lNumber) AND CBool(bStart) Then
Response.Write "<td class=SelectedDay>"
Response.Write "<input name=fldDay type=hidden value=" & lNumber & ">"
Else
Response.Write "<td class=NormalDay>"
End If
If NOT CBool(bFinished) AND CBool(bStart) Then
If CLng(m_lDay) <> CLng(lNumber) Then
Response.Write "<A href='java script:ChangeDay(" & lNumber & ");'>"
End If
Response.Write lNumber
If CLng(m_lDay) <> CLng(lNumber) Then
Response.Write "</A>"
End If
lNumber = lNumber + 1
If CLng(lNumber) > CLng(m_lDaysInMonth) Then
bFinished = True
End If
Else
Response.Write " "
End If
Response.Write "</td>"
Next
Response.Write "</tr>"
Loop Until CBool(bFinished)
Response.Write "</tr></table>"
End Sub
%>
<script language="javascript">
function ChangeDay(v_lDay) {
document.Form1.fldDay.value = v_lDay;
document.Form1.submit();
}
function SetDateOnParent() {
sRetDateTime = '<%=FormatDateTime(m_dtCurrentDate, 2)%>'
window.opener.eval('<%=m_sInputName%>').value = sRetDateTime;
window.close();
}
</script>
----------------------
3) calendarpopup.css
----------------------
a {
color: black;
font-family: arial;
text-decoration: none;
}
a:visited {
color: black;
font-family: arial;
text-decoration: none;
}
a:hover {
color: black;
font-family: arial;
background-color: silver;
text-decoration: none;
}
table.calendar {
margin-top: 1px;
border-right: thin inset;
border-top: thin inset;
border-left: thin inset;
border-bottom: thin inset;
}
table.overall {
border-right: thin groove;
border-top: thin groove;
border-left: thin groove;
border-bottom: thin groove;
}
tr.header {
font-size: 10pt;
color: white;
font-family: arial;
background-color: gray;
text-align: center;
}
td.normalday {
font-size: 10pt;
color: black;
font-family: arial;
background-color: white;
text-align: center;
}
td.selectedday {
font-size: 10pt;
color: white;
font-family: Arial;
background-color: #000080;
text-align: center;
}
td.title {
font-size: 10pt;
font-family: arial;
}
input.button {
width: 80px;
}
------------------------
Håber du får det til at virke. :)