【问题标题】:Sharing video and photo in metro apps through share charm通过分享魅力在 Metro 应用程序中分享视频和照片
【发布时间】:2013-05-20 11:50:12
【问题描述】:

我正在尝试从应用程序中拍摄照片和视频,并尝试通过分享魅力来分享它,但我在这样做时遇到了问题。我拍完照片后,分享魅力说它无法分享图像。这是我的代码。谁能告诉我我做错了什么。

namespace Temp
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class Page1 : Page
    {

        private StorageFile _photo; // Photo file to share
        private StorageFile _video; // Video file to share





        private async void OnCapturePhoto(object sender, TappedRoutedEventArgs e)
        {
            var camera = new CameraCaptureUI();
            var file = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo);

            if (file != null)
            {
                _photo = file;
                DataTransferManager.ShowShareUI();
            }
        }



        private async void OnCaptureVideo(object sender, TappedRoutedEventArgs e)
        {
            var camera = new CameraCaptureUI();
            camera.VideoSettings.Format = CameraCaptureUIVideoFormat.Wmv;
            var file = await camera.CaptureFileAsync(CameraCaptureUIMode.Video);

            if (file != null)
            {
                _video = file;
                DataTransferManager.ShowShareUI();
            }
        }

        void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs args)
        {
            var request = args.Request;


            if (_photo != null)
            {
                request.Data.Properties.Description = "Component photo";
                var reference = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromFile(_photo);
                request.Data.Properties.Thumbnail = reference;
                request.Data.SetBitmap(reference);
                _photo = null;

            }
            else if (_video != null)
            {
                request.Data.Properties.Description = "Component video";
                List<StorageFile> items = new List<StorageFile>();
                items.Add(_video);
                request.Data.SetStorageItems(items);
                _video = null;
            }

        }

      }


        protected override void OnNavigatedTo(NavigationEventArgs e)
        {

            DataTransferManager.GetForCurrentView().DataRequested += OnDataRequested;

        }







}

【问题讨论】:

    标签: windows-8 windows-runtime


    【解决方案1】:

    为了让您的应用共享,您必须设置DataPackagePropertySet 的标题和至少一种“SetXXX”方法。如果不这样做,您将在尝试共享“来自 的数据有问题”时看到以下消息。

    所以在OnDataRequested 事件中添加request.Data.Properties.Title = "Title_of_photo_or_video";

    【讨论】:

    • 该应用默认尝试与 Skydrive 共享。无论如何,我可以尝试通过电子邮件分享它?还有你所说的 SetXXX 方法是什么意思?有什么例子吗?
    • Here MSDN 示例通过共享魅力共享各种文件。 SetXXX 方法意味着,有很多方法可以共享不同的数据,例如SetData()SetHtmlFormat()SetText()
    猜你喜欢
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 2013-02-05
    相关资源
    最近更新 更多