Rhomobile, воспроизводящий видео локальное хранилище

Привет, я пытаюсь воспроизвести файл mp4 или mp3 из локального хранилища, я знаю, как воспроизводить видео, когда оно находится на веб-сервере. Эти файлы загружаются и хранятся в моем каталоге приложений данных.

Я храню детали в массиве под названием @Attachments. Затем у меня есть следующий код для отображения деталей каждого вложения.

        @attachments.each do |att|
          if att.MimeType=~ /image/
            %> <img src="<%=att.Data%>" height="100" width="100" alt="Attachment Image"> </img> 
            <br/><br/>
            <% elsif att.MimeType=~ /video/ %>
            <p> File Location - <%= att.Data %> </p>
            <a href="<%= att.Data %>">Play Video - <%= att.Title %></a><br/><br/><%
          else
            %>
            <a href="">View Attachment - <%= att.Title %></a><br/><br/><%
          end
        end
      %>
  <p>

Итак, как вы видите, я проверяю, какие типы файлов отображают их, я могу отобразить изображение без проблем. Но когда я нажимаю ссылку для воспроизведения видео, я получаю страницу загрузки с ошибкой или страницу, которая просто не определена. Я знаю, где находится файл с att.Data, который дает каталог для файла, который выглядит следующим образом. /data/data/com.rhomobile.appname/rhodata/apps/filename.extension

Любая помощь здесь будет большой благодарностью.

1 ответ

Мы смогли запустить видео по клику гиперссылки, используя следующий подход:

Прикреплен скрипт jquery для обработки события клика по гиперссылке. При событии click вызывается метод на контроллерах, созданных в RhoMobile и передавших путь к видео в качестве параметра. Код выглядит так:

<a href="#" id="hyperlink_id">
  <script>
     $('#hyperlink_id').click(function () {
         $.get("/app/Collateral/playmedia?medianame=path_to_video",
           function(data) {});
           }); 
  </script>
  <img src="<%=@collateralHM[iconName].fileName%>">
</a>

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

# GET /Collateral/playvideo
def playvideo
  mediaName = @params['medianame']    
  System.open_url mediaName
end

Надеюсь это поможет.

Другие вопросы по тегам