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
Надеюсь это поможет.