return strings.Index(http.DetectContentType(data), "video/") != -1
}
+// IsAudioFile detects if data is an video format
+func IsAudioFile(data []byte) bool {
+ return strings.Index(http.DetectContentType(data), "audio/") != -1
+}
+
// EntryIcon returns the octicon class for displaying files/directories
func EntryIcon(entry *git.TreeEntry) string {
switch {
file_permalink = Permalink
file_too_large = The file is too large to be shown.
video_not_supported_in_browser = Your browser does not support the HTML5 'video' tag.
+audio_not_supported_in_browser = Your browser does not support the HTML5 'audio' tag.
stored_lfs = Stored with Git LFS
commit_graph = Commit Graph
ctx.Data["IsPDFFile"] = true
case base.IsVideoFile(buf):
ctx.Data["IsVideoFile"] = true
+ case base.IsAudioFile(buf):
+ ctx.Data["IsAudioFile"] = true
case base.IsImageFile(buf):
ctx.Data["IsImageFile"] = true
}
<video controls src="{{EscapePound $.RawFileLink}}">
<strong>{{.i18n.Tr "repo.video_not_supported_in_browser"}}</strong>
</video>
+ {{else if .IsAudioFile}}
+ <audio controls src="{{EscapePound $.RawFileLink}}">
+ <strong>{{.i18n.Tr "repo.audio_not_supported_in_browser"}}</strong>
+ </audio>
{{else if .IsPDFFile}}
<iframe width="100%" height="600px" src="{{AppSubUrl}}/vendor/plugins/pdfjs/web/viewer.html?file={{EscapePound $.RawFileLink}}"></iframe>
{{else}}