コード例 #1
0
        /// <inheritdoc />
        public async Task SaveToCameraRoll(MediaFile mediafile, bool overwrite = true)
        {
            string targetFilename = mediafile.Filename;

            this.tracer.Debug("SaveToCameraRoll with targetFilename={0}, overwrite={1}", targetFilename, overwrite);

            try
            {
                using (var mediaLibrary = new Microsoft.Xna.Framework.Media.MediaLibrary())
                {
                    mediaLibrary.SavePictureToCameraRoll(targetFilename, mediafile.GetStream());
                }
            }
            catch (UnauthorizedAccessException ex)
            {
                throw new UnauthorizedAccessException("Make sure that you add the ID_CAP_MEDIALIB_PHOTO capability in your WmAppManifest.", ex);
            }
        }
コード例 #2
0
        /// <inheritdoc />
        public async Task SaveToCameraRoll(MediaFile mediafile, bool overwrite = true)
        {
            string targetFilename = mediafile.Filename;

            this.tracer.Debug("SaveToCameraRoll with targetFilename={0}, overwrite={1}", targetFilename, overwrite);

            try
            {
                var collisionOption  = overwrite ? CreationCollisionOption.ReplaceExisting : CreationCollisionOption.FailIfExists;
                var cameraRollFolder = KnownFolders.CameraRoll;
                var targetFile       = await cameraRollFolder.CreateFileAsync(targetFilename, collisionOption);

                using (var outputstream = await targetFile.OpenStreamForWriteAsync())
                {
                    await mediafile.GetStream().CopyToAsync(outputstream);
                }
            }
            catch (UnauthorizedAccessException ex)
            {
                throw new UnauthorizedAccessException("Make sure that you add the picturesLibrary capability in your Package.appxmanifest.", ex);
            }
        }