2011-10-28 69 views
0

嗨我想从本地存储播放mp4或mp3文件,我知道如何播放视频时,它是在Web服务器上。这些文件被下载并存储在我的数据应用程序目录中。Rhomobile,播放视频本地存储

我将详细信息存储在名为@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

这里的任何帮助将非常感谢。

回答

0

我们可以使用以下方法中的超链接的点击启动视频:

附加一个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="<%[email protected][iconName].fileName%>"> 
</a> 

在控制器类,来处理这个代码如下:

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

希望这有助于。