0

注:前の質問で誤ってCommunity Wikiをクリックしたため、この質問が再度尋ねられています。明らかに、それは人々がそれに答える評判という形で十分なインセンティブを提供していませんでした。ここに古い質問へのリンクがあります、それらの答えを複製しないでください(とにかくそれらは正確には役に立ちませんでした):

元の質問へのリンク

ここに質問があります...

MMSプロトコルを介して配信されるインターネットラジオストリームをストリーミングするWindowsMo​​bile6.xを対象としたWindowsMo​​bileアプリを作成しようとしています(特に1つの機能のみ)。

.NET Compact Frameworkには、これを行う組み込みのコントロールまたはAPIがありますか?または、サードパーティのライブラリを探し始める必要がありますか?

なぜこれが.NETCompactFrameworkでサポートされないのか少し混乱していますか?つまり、MMSはMicrosoft独自のWindowsストリーミングプロトコルです。


私は実際にhttp経由でMP3をストリーミングする方法もわかりません。私はこれを試しましたが、失敗しました:

WMPLib.dllの使用に関するMSDNの記事

実際、モバイルのWindows Media Player自体に移動して、プログラムでストリーミングしようとしているのと同じURLを指定すると、失敗します。ただし、これと同じURLは、デスクトップコンピューターのWindowsMediaPlayerからは機能します。はい、正しく入力されています。

私は実際に、カスタムアプリのWindows MobileでMP3ファイルを再生するという別のアイデアに出くわしましたが、その場でストリーミングする機能はありません。代わりに、モバイルデバイスで再生する前にファイル全体をダウンロードします。ここにいくつかのコードがあります:

string url = @"http://blahblah.com/blahblah.mp3";
string tempFilePath = Path.GetTempPath() + "tempFile.mp3";

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
 byte[] buffer = new byte[1024];
 int bytesRead = 0;

 using (Stream responseStream = response.GetResponseStream())
 {
  using (FileStream fs = new FileStream(tempFilePath, FileMode.Create, FileAccess.ReadWrite))
  {
   while ((bytesRead = responseStream.Read(buffer, 0, buffer.Length)) > 0)
   {
    fs.Write(buffer, 0, bytesRead);
   }
  }
 }
}

SndPlaySync(tempFilePath, 0);

そしてここにDllImportがあります:

[DllImport("aygshell.dll", SetLastError = true)]
private static extern IntPtr SndPlaySync(string Path, uint Flags);

代わりにMP3をストリーミングする方法について誰かアドバイスはありますか?

前もって感謝します。

4

3 に答える 3

1

MMS を使用している場合、音楽を配信するには 2 つのオプションがあります。

  • Windows Media Server をインストールし、音楽の公開ポイントを追加する
  • IIS サーバーがある場合は、HTTP 経由で mp3 をストリーミングできるようにする WMS プラグインを取得する必要があります。

このリンクを参照してください。

上記の 2 つは、MMS 経由でメディアを提供するために現在利用できる唯一のオプションであることに注意してください。他の Web サーバーがある場合は、IIS 用に上記のようなプラグインが必要になります (見つける可能性はあまりありません)。

完了すると、WinMobile 6.x の一部として提供される Windows メディア プレーヤーは、サーバーからのものを調整および再生できるようになります。クライアント (WinMobile) 側では何も必要ありません。

于 2009-07-14T05:46:34.633 に答える
0

組み込みのメディアプレーヤーを使用する場合、WindowsMo​​bileプラットフォームでMMSサポートが有効になります。MMSの再生を有効にする最初の最も簡単な方法は、Windows Mobileでメディアプレーヤーのインスタンスを生成して、再生する必要のあるストリームのURLを渡すことです。ただし、参照している記事は、Windows Mobileではなく、Windowsでのメディアプレーヤーの起動に関するものです。理論的には、HTTPリンクを開くのと同じ方法で機能するMMS URLを開くことができるはずであり、モバイルデバイスはWindowsMediaPlayerを自動的に起動します。

開発の観点からは、ビデオストリームの再生を可能にするフレームワークにネイティブな.Netライブラリを認識していません。ただし、最新ではないSilverlightライブラリは例外です。これらは、今年後半または来年初めにモバイルで利用できる可能性があります。コンパクトフレームワークはメインフレームワークのサブセットであるため、過去2つのSDKリリースでストリーミングへの参照は見られませんでした。

補足として、URLをWindows Mobile Media Playerに渡すときは、URLの最後に/ *を追加して、これがストリームを再生するかどうかを確認します。これが機能しない場合、ストリーミングの方法が有効なフィードを提供していない可能性があります。

新しいWindowsMo​​bile6.5 SDKをまだ見ていないことを認めます。この機能が含まれている可能性は非常に高いですが、MSDNはまだ何も明らかにしていません。

于 2009-07-14T07:21:34.880 に答える