注:前の質問で誤ってCommunity Wikiをクリックしたため、この質問が再度尋ねられています。明らかに、それは人々がそれに答える評判という形で十分なインセンティブを提供していませんでした。ここに古い質問へのリンクがあります、それらの答えを複製しないでください(とにかくそれらは正確には役に立ちませんでした):
ここに質問があります...
MMSプロトコルを介して配信されるインターネットラジオストリームをストリーミングするWindowsMobile6.xを対象としたWindowsMobileアプリを作成しようとしています(特に1つの機能のみ)。
.NET Compact Frameworkには、これを行う組み込みのコントロールまたはAPIがありますか?または、サードパーティのライブラリを探し始める必要がありますか?
なぜこれが.NETCompactFrameworkでサポートされないのか少し混乱していますか?つまり、MMSはMicrosoft独自のWindowsストリーミングプロトコルです。
私は実際にhttp経由でMP3をストリーミングする方法もわかりません。私はこれを試しましたが、失敗しました:
実際、モバイルの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をストリーミングする方法について誰かアドバイスはありますか?
前もって感謝します。