2014-06-06 2 views
3

IsolatedStorage에 비디오 파일을 저장하고 Windows Phone 8의 미디어 요소를 사용하여 재생했습니다. 처음으로 매우 성공적으로 실행되고 성공적으로 실행되고 재생할 수 있습니다. 비디오,Windows Phone에서 "IsolatedStorageFileStream에서 작동이 허용되지 않음"문제

문제는 내가 두 번째로 플레이 할 때마다, 나는이 같은 오류가 발생하고 있다는 것입니다 :

"Operation not permitted on IsolatedStorageFileStream" 

참조 내 코드 :

string mediafile = "asaqwrereertrtyrzxxcvcvvbvbv+qwwezzxzxz"; 
byte[] PlayByte = Convert.FromBase64String(mediafile); 
MemoryStream stream = new MemoryStream(PlayByte, 0, PlayByte.Length); 


IsolatedStorageFileStream isfStream = new IsolatedStorageFileStream(audioName, FileMode.OpenOrCreate,FileAccess.ReadWrite, IsolatedStorageFile.GetUserStoreForApplication()); 
isfStream.Write(stream.ToArray(), 0, stream.ToArray().Length); 
isfStream.Close(); 
Uri uri = new Uri(isfStream.Name.ToString()); 
MediaElement1.Source = uri; 
MediaElement1.Play(); 
+2

파일을 사용하려는 것으로, 오류 가능성이 가장 높은 수단 "작업 IsolatedStorageFileStream에 허용되지 않습니다"를, 그 이미 귀하의 응용 프로그램에 의해 사용됩니다. 미디어 파일 재생을 마친 후에 FileStream을 닫은 지 확인하는 것이 좋습니다. – Olter

+0

@Olter 저는 isfStream.Close()를 사용했습니다; 그래서 제거하면 비디오가 한 번도 재생되지 않습니다. –

+1

@BinjalShah - MediaElement1은 여전히 ​​해당 스트림에 대한 참조를 보유하므로 거기에 쓰려고하기 전에 null을 설정하십시오. –

답변

0
string mediafile = "asaqwrereertrtyrzxxcvcvvbvbv+qwwezzxzxz"; 
byte[] PlayByte = Convert.FromBase64String(mediafile); 
     MemoryStream stream = new MemoryStream(PlayByte, 0, PlayByte.Length); 
     string finalstring = stream.ToString(); 

     **MediaElement1.Source = null;** 
      IsolatedStorageFileStream isfStream = new IsolatedStorageFileStream(audioName, FileMode.Create, IsolatedStorageFile.GetUserStoreForApplication()); 
      isfStream.Write(stream.ToArray(), 0, stream.ToArray().Length); 
      isfStream.Close(); 
      Uri uri = new Uri(isfStream.Name.ToString()); 
      MediaElement1.Source = uri; 
      MediaElement1.Play(); 
당신이 실행할 때 그것은 보통 일이

: 오디오는 그래서 예외를 발생하지 않을 isfStream.Dispose();하여 스트림을 처리하지만 여전히 문제는 아래에 명시된 솔루션을 시도 할 수 있습니다 남아 재생 정지시

1

그것은 그 스트림을 배치함으로써 해결해야 의미 그 코드 블록을 여러 번 동시에. 파일 잠금이 끝납니다. 그래서, 당신은이 같은 생성자에서 FileAccessFileShare 모드가 포함되어 있는지 확인해야합니다 :

using(var isfStream = new IsolatedStorageFileStream(audioName, FileMode.OpenOrCreate,FileAccess.ReadWrite, IsolatedStorageFile.GetUserStoreForApplication()) 
{ 
//... 
} 
관련 문제