Блокирование шаблона Google TV от рандомизации идентификаторов эскизов

Я пытаюсь настроить веб-страницу, использующую HTML5 Google TV Template 2, которую можно найти по адресу https://developers.google.com/tv/web/docs/gtv-templates#template2. Я в растерянности, потому что шаблон рандомизирует идентификаторы миниатюр (по какой-то странной причине).

У меня есть 11 видео, и я хочу привязать каждое видео к определенной миниатюре. Какие-либо предложения?

На http://pastebin.com/L2U54DPZ находится файл dataprovider.js, на котором работает шаблон. Любая помощь горячо приветствуется. Спасибо


person ace973    schedule 27.01.2012    source источник


Ответы (2)


В строке 46 измените: var num = getRandom(15); to var num = маленький;

В строке 168 измените: var videoInfo = sources[getRandom(sources.length)]; to var videoInfo = sources[j];

В строке 170 измените:

    thumb: 'images/thumbs/thumb' + getThumbId() + '.jpg',

для большого пальца: 'images/thumbs/thumb' + getThumbId(j) + '.jpg',

person Les Vogel - Google DevRel    schedule 28.01.2012
comment
К сожалению, это не сработало. Он перестал загружать все миниатюры и видео. - person ace973; 29.01.2012
comment
Если это не исправлено сейчас, я попрошу кого-нибудь исправить код в библиотеке. - person Les Vogel - Google DevRel; 31.01.2012
comment
Спасибо, Лес, это сработало. Просто небольшое замечание для других: вам нужно настроить строку 167, если у вас другое количество видео. Поскольку у меня 11 видео, я изменил его на for (var j=0; j‹11; j++) - person ace973; 31.01.2012

Имейте в виду, что примеры Google предназначены для иллюстрации функциональности. Я подозреваю, что именно здесь появляется случайность. Они просто генерируют некоторые данные для примера.

Я изменил dataprovider.js, чтобы сделать его более понятным и иметь больше контроля.

Вот как выглядит измененная версия:

 var gtv = gtv || {
  jq: {}
};

/**
 * DataProvider class. Defines a provider for all data (Categories, Images & Videos) shown in the template.
 */
gtv.jq.DataProvider = function() {
};

/**
 * Returns all data shown in the template..
 * @return {object} with the following structure:
 *    - categories -> [category1, category2, ..., categoryN].
 *    - category -> {name, videos}.
 *    - videos -> {thumb, title, subtitle, description, sources}
 *    - sources -> [source1, source2, ..., sourceN]
 *    - source -> string with the url | {src, type, codecs}
 */
gtv.jq.DataProvider.prototype.getData = function() {
  var event_videos = [
    {
      sources: ['http://commondatastorage.googleapis.com/gtv_template_assets/IO2010-Keynote-day1.mp4'],
      title: '2010 Day 1 Keynote',
      thumb: 'images/thumbs/thumb01.jpg',
      description: ['With Vic Gundotra'],
      subtitle: 'Moscone Center'
    },
    {
      sources:['http://commondatastorage.googleapis.com/gtv_template_assets/IO2010-Keynote-day2-android.mp4'],
      title: '2010 Day 2 Keynote',
      thumb: 'images/thumbs/thumb02.jpg',
      description: ['Spider - what spider?'],
      subtitle: 'Moscone Center'
    }
];

 var buck_videos = [
    {
      sources:['http://bffmedia.com/trailer_400p.ogg'],
      title: 'Big Buck 400p Video Trailer',
      thumb: 'http://www.bffmedia.com/buck1.png',
      description: ['Common Creative Project Movie'],
      subtitle: 'Smaller Version'
    },
    {
      sources:['http://bffmedia.com/trailer_1080p.ogg'],
      title: 'Big Buck 1080p Video Trailer',
      thumb: 'http://www.bffmedia.com/buck2.png',
      description:['Common Creative Project Movie'],
      subtitle: 'Big Buck is a Rabbit'
    }
];



 var data = {
    categories: [
    {
      name: 'Dev Events',
      videos: event_videos
    },
    {
      name: 'Big Buck',
      videos: buck_videos
   }
   ]
 };
  return data;
};
person Carmen Delessio    schedule 13.02.2012