0


0

特定の機能を備えたミュージックプレーヤーを作成するよう要求されました。

このMusic Playerは、フォルダから曲をダウンロードする「ランダム」(最初のリクエスト)でモダリティで音楽を再生します。もう1つのリクエストは、4時間ごとに音楽の「ジャンル」を変更することです。

  • 午前8時から午前12時まで:それは "ロマンチックな"曲を再生します。

  • 午前12時から午後4時まで:ラテン語の曲を演奏します。

  • 午後4時から午後8時まで: "Rock"の曲を演奏します。

  • 午後8時から深夜0時まで:「ダンス」音楽を演奏します。

私の目的は、ジャンルごとに異なる曲のフォルダを作成し、それぞれのTitleName(ロマンチック、ラテン、ロックなど)を指定することです。音楽プレーヤーを起動すると、タイムスロットに従って曲のフォルダが自動的にダウンロードされます。

それで、私はあなたにこれらの機能をどのように組織化するかについてのあなたにいくつかのアドバイスをお願いします。

4 回答


2


これがアプローチです。

http://sourceforge.net/projects/csid3lib/[C# ID3 Library]または他のMP3ファイル用のID3タグリーダを使用して、プレイリストまたはフォルダ内に列挙されているMP3ファイル用のID3タグをすべて読み取ります。 プレイリストを調べ、ID3タグを読み、リポジトリを作成します。 タイマーを設定する


2


あなたはあなたがフォルダーから曲をダウンロードしていると言います、そしてそれは私がメディアプレーヤーに情報を交換しているサーバーがあると信じるように私を導きます。

私はこのためのロジックをサーバー側に置きます。 ただ普通のメディアプレーヤーがあれば何でも使用してください。

次に、サーバー側で、サーバー上の時刻に応じてダウンロードする曲のURLをフィードする何らかの種類のフィードを生成します(クライアントから提供される場合はオフセットで調整されます)。

それから、あなたのプログラムはフィードを読んで再生する曲のURLを取得し、サーバーからの指示に基づいてプレイリストをメディアプレイヤーにフィードします(または曲をダウンロードしてメディアプレイヤーにフィードします)。


1


アプリに役立つと思われる1つの概念は、ソングソースの概念です。 曲のソースは、本質的には曲へのアクセスを提供する列挙可能なアイテムです。 これは第一にインターフェースである可能性があります。

そのようにしてあなたは歌のリストを提供するコードの断片の抽象的な概念を持っています。 実際のプレイヤーは、次の曲を再生するために* ISongSource *の任意の実装にアクセスし、それを再生します。 遊びビットは、私はあなたがそこに助けることができないことを恐れています。 他のすべてが失敗した場合は、あなたの曲のソースからm3uファイル(mp3プレイリスト)を作成して起動することができます。 Process.Startを介してWinampを作成し、新しく作成したプレイリストを渡します。 実際、これはきちんとしたバージョンのように聞こえます1。

すべてをコーディングしたい場合は、mp3ファイルからID3タグを読み取るためのコードが必要になることがあります(mp3ファイルを再生している場合)。 あなたはこれを独立した機能として見るべきです、そして、おそらく利用可能な何かがすでにあるということです。 ID3のタグ付けは、mp3ファイルの先頭に定義済みのバイトオフセットがあることをよく覚えていれば、それほど複雑ではありません。

これに基づいて、どの曲がソースの一部であるべきかを決めるためにID3タグを考慮する曲ソースを実装することができるはずです。

最後にUIがあります。 特にあなたがスキン可能なものを持っているならば、それはそれ自身で全世界です。 しかし、まともなWPFの本と概念のいくつかの証明で、あなたは何かを成し遂げるためにあなたの方法にいるべきです。

ハッピーコーディング!


1


それは真新しいメディアプレーヤーである必要がありますか? 必要に応じて、これを行うためにWindows Media Playerをラップすることを検討してください。 これは良い出発点です。

http://msdn.microsoft.com/ja-jp/library/bb249260(VS.85).aspx[(Windows Media Player)Visual Basic .NETおよびC#のオブジェクトモデルリファレンス]

私はこれに似たことをするためにWindows Media Player SDKを使いました。 これは最も簡単なAPIではありませんが、DLLは1つだけなので、WMPに処理を実行させるためにコマンドを送信するのは比較的簡単です。 これは、さまざまなSDKバージョンへのリンクです(これには、必要なwmppia.dllが含まれます)。

http://msdn.microsoft.com/ja-jp/windowsmedia/bb190309.aspx[Windows Mediaダウンロード]