Tôi muốn truyền dữ liệu từ máy chủ vào MediaElement
trong ứng dụng Windows 8 Store (trước đây là Metro) của tôi. Tuy nhiên, tôi cần phải "ghi lại" luồng trong khi phát trực tuyến, vì vậy nó có thể được phân phát từ bộ nhớ cache nếu được yêu cầu lại, vì vậy tôi không muốn cấp URL trực tiếp vào MediaElement
.Truyền trực tuyến bằng cách di chuyển giữa Windows 8
Hiện tại, trở ngại là MediaElement.SetSource()
chấp nhận một IRandomAccessStream
, không phải là System.IO.Stream
, đó là những gì tôi nhận được từ HttpWebResponse.GetResponseStream()
.
Code tôi có bây giờ, mà không làm việc:
var request = WebRequest.CreateHttp(url);
request.AllowReadStreamBuffering = false;
request.BeginGetResponse(ar =>
{
var response = ((HttpWebResponse)request.EndGetResponse(ar));
// this is System.IO.Stream:
var stream = response.GetResponseStream();
// this needs IRandomAccessStream:
MediaPlayer.SetSource(stream, "audio/mp3");
}, null);
Có một giải pháp cho phép tôi để truyền âm thanh, nhưng cho phép tôi để sao chép các dòng vào đĩa khi nó đã đọc xong từ điều khiển từ xa bên?
bạn đã figured it out? thực sự tôi không cần phải lưu trữ nó, tôi chỉ muốn truyền trực tiếp nó. – esskar
@esskar Không hẳn. Truyền trực tiếp hoạt động tốt bằng cách chỉ cung cấp URL hoặc 'InMemoryRandomAccessStream'. Sự cố đang phân phối luồng tới hai vị trí khác nhau. –
cảm ơn thông tin. tôi đã cố gắng đặt thuộc tính '.Source' trực tiếp, nhưng nó không hoạt động cho tôi. (Tôi nhận được một ngoại lệ null-ref ở đâu đó trong sâu), và tôi đã không tìm ra cách tạo ra một 'IRandomAccessStream' tạo thành một URL. nhưng hôm nay tôi sẽ làm việc. – esskar