2012-04-27 12 views
9

Ok vì vậy tôi đã xem xét phần lớn các vấn đề khác mà mọi người đang gặp phải với vimeo và tôi không nghĩ rằng họ đã gặp phải vấn đề tương tự mà tôi đã nhận được.Video Vimeo không phát trên UIWebView của iPad

Khi tôi mở video vimeo trên ứng dụng Safari trên cả iPhone và iPad, cả hai đều hoạt động tốt không có vấn đề gì.

Bây giờ tôi đã tạo một ứng dụng iPhone có UIWebView và tải video trình phát vimeo và cũng hoạt động tốt.

Vấn đề là nếu bây giờ tôi cài đặt cùng một ứng dụng trên iPad của tôi, trình phát vimeo từ chối tải video, nó chỉ bị treo và xoay xoay vẫn xoay vòng nhưng video sẽ không tải. Tuy nhiên, bây giờ những gì tôi đã làm sau đó đã tạo ra một ứng dụng cơ bản tải URL của trình phát vimeo trong UIWebView dưới dạng ứng dụng iPad gốc, chứ không phải ứng dụng iPhone được thay đổi kích thước hoặc "2x" để phù hợp với iPad. Đáng ngạc nhiên, điều này làm việc tốt.

Vì vậy, bây giờ tôi đang bối rối ... tại sao iPad sẽ không phát video vimeo nếu nó không chạy một ứng dụng được thiết kế cho iPad? Có một số phép thuật đặc biệt xảy ra đằng sau hậu trường có thể phá vỡ điều này không?

Tôi đang ở một mất mát ở đây, bất kỳ trợ giúp sẽ được đánh giá cao

+0

Tôi nhận ra câu hỏi này là năm cũ, nhưng nếu ai đó đã vấp ngã trên nó bây giờ: những phiên bản iOS được cài đặt trên các thiết bị này? Có vấn đề với Vimeo trên iOS 9. – Richard

+0

Tại thời điểm viết câu hỏi này, các ứng dụng đang sử dụng iOS5 – Jason

Trả lời

1

Thực hiện các phương pháp đại biểu: shouldStartLoadWithRequest sau đó trong phương pháp mà chỉ phát hiện rằng cho dù các URL được yêu cầu là loại Video nếu nó là sau đó hãy làm theo các mã được đưa ra trong bên dưới liên kết mà làm việc cho tôi:

Playing a video file from server in an Iphone app

Đây sẽ là tốt trong chơi bất kỳ video.

1

Sự cố có thể xảy ra với tác nhân người dùng khác với tác nhân của Safari trên thiết bị Apple: UIWebView gửi một số chuỗi không hợp lệ khiến Vimeo (và đôi khi YouTube) bị hỏng.

Luckly, bạn được phép ghi đè user agent của ứng dụng bằng cách sử dụng sau đây (C#, cho tôi biết nếu không làm sạch đủ):

NSDictionary dictionary = NSDictionary.FromObjectAndKey(new NSString("Mozilla/5.0 (" + (UIDevice.CurrentDevice.Model.Contains("iPad") ? "iPad" : "iPhone") + "; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25"), new NSString("UserAgent")); 
NSUserDefaults.StandardUserDefaults.RegisterDefaults(dictionary); 

Điều này làm cho các đoạn video chơi tốt.

+0

Cảm ơn bạn đã trả lời, rất tiếc là tôi không có thời gian để tự mình kiểm tra ngay bây giờ, nhưng nếu có ai khác có thể nhận xét đây là giải pháp đúng, tôi sẽ đánh dấu câu trả lời của bạn là chính xác. – Jason