0

こんにちは、ローカル ストレージから mp4 または mp3 ファイルを再生しようとしています。Web サーバー上にあるビデオを再生する方法を知っています。これらのファイルはダウンロードされ、データ アプリ ディレクトリに保存されます。

詳細は @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

ここで何か助けていただければ幸いです。

4

1 に答える 1

0

次のアプローチを使用して、ハイパーリンクのクリックでビデオを起動することができました。

ハイパーリンクのクリック イベントを処理する jquery スクリプトを添付しました。クリック イベントで、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

お役に立てれば。

于 2012-07-10T09:18:12.657 に答える