アルバムアート

<アルバム アートを表示する>

 Windows Media Player では、可能であれば大きなバージョンと小さなバージョンの両方のアルバム アートがダウンロードされます。
 これらの画像ファイルは、アルバム トラックと同じフォルダに格納されますが、既定では非表示になります。
 これらの画像は、ブラウザでアクセスできるように Web サイトの子フォルダにコピーする必要があります。
 この処理は、最初に適切な画像を検索してから、Web サイトのサブフォルダにそのファイルをコピーし、次に必要になったときに簡単に取得できるように一意の名前を付けることで行います。
 アルバム アートが見つからない場合は、小さな透明の画像が代わりに使用されます。

Public Function GetAlbumArtUrl(ByVal size As AlbumArtSize) As String
Dim albumArtFileName As String = GetCustomAlbumArtFileName(size)
Dim albumArtFullFilename As String = _          Path.Combine(_albumArtDirectory, albumArtFileName)

Dim fileExists As Boolean = File.Exists(albumArtFullFilename)

If Not fileExists Then
Dim dir As String = Path.GetDirectoryName(Tracks(0).Location)
Dim filename As String

If Directory.Exists(dir) Then
filename = GetRealAlbumArtFileName(dir, size)

If Not filename Is Nothing Then
File.Copy(filename, albumArtFullFilename)
File.SetAttributes(albumArtFullFilename, FileAttributes.Normal)
fileExists = True
End If
End If
End If

Dim url As String

If fileExists Then
url = "/coding4fun/images/coolapps/musiclib/AlbumArt/" & _              albumArtFileName
Else
url = "/coding4fun/images/coolapps/musiclib/dot.gif"
End If

Return url
End Function

 GetCustomAlbumArtFileName メソッドでは、画像のコピーを保存し、それ以後の要求で簡単に取得できるようにするために使用する一貫性のある名前が作成されます。

Private Function GetCustomAlbumArtFileName(ByVal size As AlbumArtSize) As String
Return String.Format("{0}-{1}-{2}.jpg", _          GetAlphanumericString(_artist.Name), _          GetAlphanumericString(Name), size.ToString)
End Function

Private Function GetAlphanumericString(ByVal s As String) As String
Dim sb As StringBuilder = New StringBuilder

For Each c As Char In s
If Char.IsLetterOrDigit(c) Then
sb.Append(c)
End If
Next

Return sb.ToString()
End Function

さらに興味深いものにするために、アルバム アートのファイル名を次のいずれかのパターンと一致させることができます。

AlbumArt_{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}_Large.jpg AlbumArt_{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}_Small.jpg
AlbumArt__Large.jpg AlbumArt__Small.jpg
Folder.jpg AlbumArtSmall.jpg

GetRealAlbumArtFileName は、アルバム アートが存在する場合に、前述のパターンを検索することでそのファイル名を取得します。

Private Function GetRealAlbumArtFileName(ByVal dir As String, _      ByVal size As AlbumArtSize) As String
Dim filename As String = Nothing
Dim filenames() As String = Directory.GetFiles(dir, "AlbumArt*" & _         size.ToString() & ".jpg")

If (filenames.Length > 0) Then
filename = filenames(0)
ElseIf (size = AlbumArtSize.Large) Then
Dim file As FileInfo = New FileInfo(Path.Combine(dir, "Folder.jpg"))
If file.Exists Then
filename = file.FullName
End If
End If

Return filename
End Function


Windows Media Player:WMPの解説と種類の一覧です。
視覚エフェクト:視覚エフェクトの解説と種類の一覧です。
視覚エフェクトリスト:視覚エフェクトの種類の画像つきの紹介リストです。
視覚エフェクト2:視覚エフェクトについてのQ&Aです。
mpvis.dll:mpvis.dllとは何か?についての説明です。

最終更新:2014年01月05日 15:37
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。