select poster frame
This commit is contained in:
parent
41ae23a62f
commit
5e331c6d31
4 changed files with 141 additions and 7 deletions
|
|
@ -395,8 +395,23 @@ class Item(models.Model):
|
|||
if not keys or 'posters' in keys:
|
||||
i['posters'] = self.get_posters()
|
||||
if not keys or 'frames' in keys:
|
||||
i['frames'] = ['/%s/frame/poster/%d.jpg' %(self.itemId, p)
|
||||
for p in range(0, len(self.poster_frames()))]
|
||||
i['frames'] = []
|
||||
frames = self.poster_frames()
|
||||
if frames:
|
||||
pos = self.poster_frame
|
||||
if pos < 0:
|
||||
pos = 0
|
||||
p = 0
|
||||
for f in frames:
|
||||
i['frames'].append({
|
||||
'id': p,
|
||||
'position': f['position'],
|
||||
'selected': p == pos,
|
||||
'url': '/%s/frame/poster/%d.jpg' %(self.itemId, p),
|
||||
'height': f['height'],
|
||||
'width': f['width']
|
||||
})
|
||||
p += 1
|
||||
if keys:
|
||||
info = {}
|
||||
for key in keys:
|
||||
|
|
@ -863,17 +878,26 @@ class Item(models.Model):
|
|||
|
||||
def poster_frames(self):
|
||||
frames = []
|
||||
offset = 0
|
||||
for f in self.main_videos():
|
||||
for ff in f.frames.all():
|
||||
frames.append(ff.frame.path)
|
||||
frames.append({
|
||||
'position': offset + ff.position,
|
||||
'path': ff.frame.path,
|
||||
'width': ff.frame.width,
|
||||
'height': ff.frame.height
|
||||
})
|
||||
offset += f.duration
|
||||
return frames
|
||||
|
||||
def get_poster_frame_path(self):
|
||||
frames = self.poster_frames()
|
||||
if self.poster_frame >= 0:
|
||||
if frames:
|
||||
return frames[int(self.poster_frame)]['path']
|
||||
size = int(settings.VIDEO_PROFILE.split('.')[0][:-1])
|
||||
return self.frame(self.poster_frame, size)
|
||||
|
||||
frames = self.poster_frames()
|
||||
if frames:
|
||||
return frames[int(len(frames)/2)]
|
||||
|
||||
|
|
|
|||
|
|
@ -560,9 +560,8 @@ def poster_frame(request, id, position):
|
|||
item = get_object_or_404(models.Item, itemId=id)
|
||||
position = int(position)
|
||||
frames = item.poster_frames()
|
||||
print frames, position
|
||||
if frames and len(frames) > position:
|
||||
frame = frames[position]
|
||||
frame = frames[position]['path']
|
||||
return HttpFileResponse(frame, content_type='image/jpeg')
|
||||
raise Http404
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue