0

MSDN フォーラムで見つけたコードは次のとおりです。

    Dim file As New Uri("Assets/someSong.mp3", UriKind.Relative)     
    Dim myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()
    Dim fileStream As IsolatedStorageFileStream = myIsolatedStorage.CreateFile("someSong.mp3")
    Dim resource = Application.GetResourceStream(file)
Dim chunkSize As Integer = 4096
    Dim bytes As Byte() = New Byte(chunkSize - 1) {}
    Dim byteCount As Integer
    While resource.Stream.Read(bytes, 0, chunkSize) > 0
        byteCount = resource.Stream.Read(bytes, 0, chunkSize)
        fileStream.Write(bytes, 0, byteCount)
    End While
    fileStream.Close()
    Dim metaData As New Microsoft.Xna.Framework.Media.PhoneExtensions.SongMetadata()
    metaData.AlbumName = "Some Album name"
    metaData.ArtistName = "Some Artist Name"
    metaData.GenreName = "test"
    metaData.Name = "someSongName"
    metaData.Duration = TimeSpan.FromSeconds(185)
    Dim ml = New MediaLibrary()
    Dim songUri As New Uri("someSong.mp3", UriKind.RelativeOrAbsolute)
    Dim song = Microsoft.Xna.Framework.Media.PhoneExtensions.MediaLibraryExtensions.SaveSong(ml, songUri, metaData, Microsoft.Xna.Framework.Media.PhoneExtensions.SaveSongOperation.CopyToLibrary)

そのため、携帯電話のソング ハブ (Lumia 920) に曲をロードできますが、曲をタップしないとエラー c00d36c4 が表示されます。保存中にストリームが破損したようです。

保存しようとしている曲は、ビルド アクション「コンテンツ」と「コピーしない」を含むアプリ プロジェクトにあります。

WP Emulator でも、別の mp3 ファイルを使用しても同じことが起こります。

SaveSong メソッドに関する公式ドキュメントが見つかりませんでした。

4

1 に答える 1

0

問題を解決しました。ストリーム全体を正しくコピーできませんでした。私は方法に切り替えてから[Stream].CopyTo働きました。

于 2013-01-22T14:18:14.190 に答える