2014-11-10 2 views
1

Windows Phone 8.1 앱의 경우 비디오를 녹화해야합니다. MediaCapture 리소스를 올바르게 정리하십시오.

나는이 지침을 사용하고는 ... 기본적으로 http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh868171.aspx

작동 ...하지만 난 App.xaml.cs를

public MediaCapture MediaCapture { get; set; } 
public CaptureElement PreviewElement { get; set; } 
public bool IsRecording { get; set; } 
public bool IsPreviewing { get; set; } 

public async Task CleanupCaptureResources() 
{ 
    if (IsRecording && MediaCapture != null) 
    { 
     await MediaCapture.StopRecordAsync(); 
     IsRecording = false; 
    } 
    if (IsPreviewing && MediaCapture != null) 
    { 
     await MediaCapture.StopPreviewAsync(); 
     IsPreviewing = false; 
    } 

    if (MediaCapture != null) 
    { 
     if (PreviewElement != null) 
     { 
      PreviewElement.Source = null; 
     } 
     MediaCapture.Dispose(); 
    } 
} 

private async void OnSuspending(object sender, SuspendingEventArgs e) 
{ 
    var deferral = e.SuspendingOperation.GetDeferral(); 

    //cleanup camera resources 
    await CleanupCaptureResources(); 

    deferral.Complete(); 
} 

내가 돈 '내 청소 부분을하지 않습니다 App.xaml.cs와 VideoRec.xaml (미리보기 요소와 관련된) 간의 연결이 어떻게 작동하는지 알아보십시오. 이것은 아마도 매우 기본적인 것입니다 ... 나는 모든 힌트 또는 초보자를위한 튜토리얼에 대한 링크가 MediaCapture를 전혀 다루지 않는 것에 대해 매우 감사하고 있습니다. 내가 찾은 모든 것은 진보 된 것입니다.

답변

1

내가 적절한 세척 MediaCaptureMSDN를 사진/비디오를 takieng의 가장 중요한 부분이라고 말할 것입니다 말한다 : 윈도우 폰, 음악, 미디어 애플리케이션에

참고가 MediaCapture 개체를 정리해야하며, 관련 리소스를 Suspending 이벤트 처리기에 저장하고 Resuming 이벤트 처리기에서 다시 만듭니다.

MediaCapture 요소를 청소하지 않으면 어떻게됩니까? - 내 경우에는 시도했을 때 MediaCapture (예 : 기본 사진 앱)을 사용하여 다른 응용 프로그램을 실행하면 전화가 끊어졌습니다.

다시 귀하의 질문에 간다 - App.xaml.cs를VideoREc.xaml 사이의 연결 - (이 경우 속성) 모든 변수 MediaCapture, PreviewElement, IsRecordingIsPreviewing 클래스 App에 정의되어 있음을보고 - 그들은 앱 전체에 대해 정의됩니다. 나는 VideoRec.xamlApp.xaml.cs에 정의 된 속성의 참조만을 사용한다고 생각합니다.

또한 이벤트를 다시 시작 일시 중단/전체 응용 프로그램에 대해 정의하고 이러한 이벤트가 발생할 때 그들은 모두 해고되어 있는지 알고 있어야합니다. 언제 발생합니까? - 앱에서 다른 곳으로 이동 한 직후 (디버그 모드 만 - 컴퓨터에 연결했을 때 조금 다르게 작동 함). lifecycle events at MSDN에 대한 자세한 정보 이러한 이벤트는 MediaCapture 리소스를 청소/복원하는 데 가장 좋은 이벤트입니다.

관련 문제