none
aviファイル再生プログラムをつくりたいのですが RRS feed

  • 質問

  • こんばんは。卒業研究のためPDA端末でビデオファイルを再生するプログラムを作成しています。

     

    Public Class Form3
        Private Declare Ansi Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer
        Const FileName As String = """C:\winnt\clock.avi"""
        Public Function SendString(ByVal cmdString As String) As Long

            SendString = mciSendString(cmdString, "", 0, 0)

        End Function

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            SendString("open " & FileName)
            SendString("window " & FileName & " handle " & Me.Handle.ToString)
            SendString("play " & FileName)

        End Sub
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            SendString("close " & FileName)
        End Sub
    End Class

     

    このコードを入力すると、PCでは再生出来ましたが、PDA端末で再生できるように設定すると以下のエラーメッセージが表示されます。

    「対象の .NET Compact Framework バージョンは、ANSI、Auto、または Unicode 修飾子の使用をサポートしていません。」

     

    Visual Basic 2005 Academic Edition ではこのプログラムを作成することは不可能でしょうか?

    どなたか回答お願いいたします。

    2008年8月9日 11:15

すべての返信

  • Decrare宣言から「Ansi」を取るべきかもしれませんし、winmm.dllではなくcoredll.dllにすべきなのかもしれませんし、mciSendStringAではなくmciSendStringWとすべきなのかもしれません。
    また、あまり深く調べていないのですが、aviファイルの再生機能がない可能性もあります。

    とりあえず、PDA端末に搭載されているOSのバージョンを教えていただけないでしょうか。

    2008年8月9日 15:48
  •  Taisuke さんからの引用

    こんばんは。卒業研究のためPDA端末でビデオファイルを再生するプログラムを作成しています。

    Visual Basic 2005 Academic Edition ではこのプログラムを作成することは不可能でしょうか?

    どなたか回答お願いいたします。

     

    何の研究をしてるのかわかりませんが…

    「ネットで質問してプログラムを作る」という研究をしてるのでしょうか?

     

    研究であるのなら、

    回答が役に立ったらAcknowledgementにここのフォーラムや回答者の名前をいれてください。

     

     

     Taisuke さんからの引用

    このコードを入力すると、PCでは再生出来ましたが、PDA端末で再生できるように設定すると以下のエラーメッセージが表示されます。

    「対象の .NET Compact Framework バージョンは、ANSI、Auto、または Unicode 修飾子の使用をサポートしていません。」

     

    エラーの原因はメッセージの通りで、Compact FrameworkはANSIもUnicodeもないので、

        Private Declare Ansi Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As

    ここのAnsiが使えません。

    まぁそれは些細なことです。

     

    もっと基本的な問題があります。

    Compact Frameworkは移動体だとか軽量端末などで用いるためのライブラリですので、

    .Net Frameworkで動くプログラムがそのままCompact Frameworkで動くとは限りません。

     

    最も重要な問題はWindows Mobileがmciをサポートしていないことです。

    MSDNのMobile PCの項やMCIの項を参照するとよいでしょう。

     

    mciSendStringはWindows Mobileにはありません。

    なので、AnsiもUnicodeも関係ありませんし、Declareの意味もありません。

     

    Visual Basic 2005 Academic Edition ではこのプログラムを作成することは不可能でしょうか?

    「この」が何を指すのかよくわかりませんが…

     

    mciSendStringでaviを再生したいのなら、AcademicとかVBとか.NetFrameworkとかに関係なく、

    OSにmciSendStringが無いので不可能です。

     

    aviを再生したい、というのならいろいろな手で可能でしょう。

    MediaPlayerと連携して再生するのが一番簡単だと私は思いますが、

    もっと簡単な手もあるかもしれません。

    端末を限定して専用のライブラリを使う、というような手もあるはずです。

     

    いろいろ手はあると思いますが、

    このコードを入力すると、PCでは再生出来ましたが、PDA端末で再生できるように設定すると以下のエラーメッセージが表示されます。

    この辺から推察するに、OSやPDA、CompactFrameworkなどの関係をきちんと理解していないように見受けられます。

     

    研究するのであれば、下調べ=予備調査はきちんと行いましょう。

    「研究」の「研」の字は、「とぐ」と読み、「究」の字は、「きわめる」と読みます。

     

    やってみて行き詰ったらネットに頼る、という態度で「究める」のは難しいと思いますよ。

    2008年8月9日 15:53
  •  

    ご回答ありがとうございます。現在も未だ解決していません。

    OSはWindows Mobile 5.0 (WM5.0)です。

     

    WM5.0ではMedia Playerの機能をアプリケーションに組み込むことができる、とあるので

    それがもっとも確実な方法なのかと思いました。

     

    現在はその組み込み方法がわからず困っています。プログラミング初心者で申し訳ありません。

     

    2008年8月21日 6:36
  •  

    ご回答ありがとうございます。安易な書き込みをしたことをお詫び申し上げます。

    私は現在「Mobile環境におけるユーザの映像体感品質評価」という名目で行っています。

     

    このプログラムは、いくつかの映像を流し、それに対するMOS評価をアンケートにより調査するための

    ものです。Visual Basicでできるのではという指摘をいただき、作成開始しました。

     

    おっしゃる通り、私にはまだ研究と名乗れるほどの下調べは行っておりません。

    焦点が映像体感品質評価のため、その評価方法に比重を置いてしまいました。

     

    .NET Compact Frameworkでは.NET Frameworkのクラスライブラリの約30%が実装されている

    とありました。もちろんそういった制約があることは覚悟しています。

     

    Media Playerと連携が一番簡単とありますが、私もそれがもっとも良いと感じております。

    他のことを行う知識もありませんので・・・。

     

    現在はMedia Playerの組み込みができず、困っています。

    「ツールボックス」の「アイテムの選択」でWindows Media Playerを選択してもツールボックスには

    でてきません。

     

    どのようにしたら「Media Playerの機能を組み込むアプリケーション」をつくることができますでしょうか?

     

    よろしくお願いします。

    2008年8月21日 6:55