나는 MP3가 재생되지 않지만 WCF, 언어 C#을 사용하여 실버 라이트로 오디오 파일을 재생하려고하는데, 내 앱에서 오류가 발생하지 않습니다.실버 라이트로 재생되지 않는 오디오 파일
stream fileStream;
private void DownloadMusic_Click(object sender, RoutedEventArgs e)//this is the button that plays the music
{
FileServiceClient FSC = new FileServiceClient();
FSC.DownloadTestCompleted += new EventHandler<DownloadTestCompletedEventArgs>(FSC_DownloadTestCompleted);
FSC.DownloadTestAsync(FileSearch.Text);
}
void FSC_DownloadTestCompleted(object sender, DownloadTestCompletedEventArgs e)
{
FileObject fileObject;
if (e.Error == null)
{
if (e.Result != null)
{
fileObject = e.Result;
fileStream = new MemoryStream(fileObject.FileStream);
mediaElement1.SetSource(fileStream);
mediaElement1.AutoPlay = false;
mediaElement1.Play();
ResultBlock.Text = "Song is playing . . .";
}
else
{
ResultBlock.Text = "Song could not be found";
}
}
}
서비스 :
public FileObject DownloadTest(string fileName)
{
FileStream fileStream = null;
BinaryReader reader = null;
string filePath = "";
byte[] fileBytes;
try
{
filePath = Path.Combine(HttpContext.Current.Server.MapPath("."), "Pictures", fileName);
if (File.Exists(filePath))
{
fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
reader = new BinaryReader(fileStream);
fileBytes = reader.ReadBytes((int)fileStream.Length);
return new FileObject() { FileName = fileName, FileStream = fileBytes };
}
return null;
}
catch (Exception)
{
return null;
}
}
인터페이스 : 모든 도움을 이해할 수있을 것이다
namespace WCF_Silverlight_UploadFile.Web
{
[ServiceContract]
public interface IFileService
{
[OperationContract]
bool UploadTest(FileObject file);
[OperationContract]
FileObject DownloadTest(string fileName);
}
[DataContract]
public class FileObject
{
[DataMember]
public string FileName { get; set; }
[DataMember]
public byte[] FileStream { get; set; }
[DataMember]
public string FileType { get; set; }
}
}
을 여기
내가 지금까지있는 것입니다. 감사합니다.
여전히 mediaElement1.SetSource (fileStream)와 함께 mp3가 재생되지 않습니다. 지금 seek()을 살펴볼 것입니다. –
내 대답이 업데이트 되었습니까? 같은 것을 시도 했습니까? –
언제 작동하는지 알려주세요. –