質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Phone

Windows Phoneは、Microsoftが開発した携帯用OSであり、ハードウェア プラットフォームを指します。

Q&A

解決済

1回答

4801閲覧

C# 自作カメラアプリのエラーについて

FENREL

総合スコア19

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Phone

Windows Phoneは、Microsoftが開発した携帯用OSであり、ハードウェア プラットフォームを指します。

0グッド

0クリップ

投稿2017/01/11 07:13

編集2017/01/11 07:49

###前提・実現したいこと
WindowsPhoneのカメラを自作アプリで使えるようにしたい。
C++でプログラミングをしていたのですが、サンプルコード等が見当たらない為C#で作成し、それを流用しようと考えています。

###発生している問題・エラーメッセージ
発生している問題

PC内でのデバッグではCaptureElementが動作するのですが、実機デバッグすると下記のようなエラーが出て何も表示されません。 ※現段階ではシャッターボタンを押しても写真を撮ることができません。

エラーメッセージ

型 'System.UnauthorizedAccessException' の初回例外が mscorlib.ni.dll で発生しました 追加情報:Access is denied.

###該当のソースコード
C#

public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); this.NavigationCacheMode = NavigationCacheMode.Required; } /// <summary> /// このページがフレームに表示されるときに呼び出されます。 /// </summary> /// <param name="e">このページにどのように到達したかを説明するイベント データ。 /// このプロパティは、通常、ページを構成するために使用します。</param> protected override async void OnNavigatedTo(NavigationEventArgs e) { //バックカメラを取得 var devices = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture); var backDevice = devices.FirstOrDefault(x => x.EnclosureLocation != null && x.EnclosureLocation.Panel == Windows.Devices.Enumeration.Panel.Back); if (backDevice == null) { backDevice = devices[0]; } //メディアキャプチャーをセットアップしCaptureElementと関連付ける var MediaCapture = new MediaCapture(); var settings = new MediaCaptureInitializationSettings {VideoDeviceId = backDevice.Id }; await MediaCapture.InitializeAsync(settings); this.CapE.Source = MediaCapture; await MediaCapture.StartPreviewAsync(); } protected override async void OnNavigatedFrom(NavigationEventArgs e) { //メディアキャプチャーの後始末 await this.CapE.Source.StopPreviewAsync(); this.CapE.Source.Dispose(); this.CapE.Source = null; } }

App.g.i.cs

(エラーが出た時★以降がピックアップされます) #if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION UnhandledException += (sender, e) => { if (global::System.Diagnostics.Debugger.IsAttached) ★global::System.Diagnostics.Debugger.Break(); }; #endif

Xaml

<Page x:Class="CStstCamera.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:CStstCamera" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid Background="Black" Margin="0"> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <CaptureElement Grid.Row="0" Name="CapE" Stretch="UniformToFill"/> <StackPanel x:Name="StackP" Grid.Row="1" Background="Black"> <AppBarButton x:Name="ApBar" VerticalAlignment="Center" HorizontalAlignment="Center" Icon="Camera"/> </StackPanel> </Grid> </Page>

###試したこと
検索してみてヒットした「http://hiho-developer.hatenablog.com/entry/20140525/1400995398」を試してみましたがダメでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

カメラへのアクセス許可が無いため、
MediaCapture.InitializeAsync()で例外吐いて落ちているのかと。

投稿2017/01/11 07:30

ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FENREL

2017/01/12 04:32

デバイスのカメラへのアクセス許可はPackage.appxmanifestで変更できますよね。 一部抜粋ですが、 <Capabilities> <Capability Name="internetClientServer" /> <DeviceCapability Name="webcam" /> </Capabilities> このような形で記述しています。 ネットで検索してみた所、ID_CAP_ISV_CAMERA を記述方法を見つけたのですが、この方法でないとアクセスが許可されないのでしょうか?
ozwk

2017/01/12 04:45

マイクへのアクセス許可追加してみるとどうなります?
FENREL

2017/01/12 04:54

Package.appxmanifestで「マイク」の欄にチェックを入れると動きました‼ ありがとうございます。 ただ、表示される物が反時計周りに90°程回転しているのが気になりますが・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問