2013-03-15 17 views
6

Daha sonra çevrimdışı oynamak için, url'den yerel olarak m3u8 dosyasını depolamak için bana rehberlik edebilecek herhangi biri olabilir. EXT-X-İZİN-ÖNBELLEK Will I url M3U8 doğrudan & oyun akışı bu matter.`m3u8 dosyası - daha sonra çalmak için nasıl yerel olarak kaydetmek için

NSURLRequest* request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; 
NSURLConnection *connection=[[NSURLConnection alloc]initWithRequest:request delegate:self]; 
NSLog(@"connection %@",connection);` 

bana yardım et. Ama yerel olarak depolamak ve .ts dosyaları ayrıştırmak ve oynamak mümkün değil ... Pls kılavuzu.

+0

Bir iOS Uygulaması tasarrufu m3u8 yapıyorsunuz demek? – Raptor

+0

@shivanRaptor: Evet – Daisy

+0

Bize güncel kodlarınızı gösterin. Nerede kaldın? – Raptor

cevap

-2

Adım 1:

NSError *err = nil; 
NSString *url = [[NSString stringWithFormat:@"http://www.example.com/playlist.m3u8"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSString *the_file = [NSString stringWithContentsOfURL:[NSURL URLWithString:url] encoding:NSUTF8StringEncoding error:&err]; 
if(err != nil) { 
    // do some error handling, e.g. NSLog(@"Fail: %@", [err localizedDescription]); 
} else { 
    // save the file (see Step 2) 
} 

Adım 2 kaydet dosyayı & indirin: Sen dosyası olarak kaydedin ya dosyayı

kaydedin veya bir nesne olarak kaydedin.

// save as file 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docDirectory = [paths objectAtIndex:0]; 
NSString *fileName = [NSString stringWithFormat:@"%@/playlist.m3u8", docDirectory]; 
[the_file writeToFile:fileName atomically:NO encoding:NSASCIIStringEncoding error:nil]; 

// OR, save as object 
[[NSUserDefaults standardUserDefaults] setObject:the_file forKey:@"MY_M3U8"]; 

Adım 3: Oku dosya

// read from file 
NSString *textPath = [docDirectory stringByAppendingPathComponent:@"playlist.m3u8"]; 
// the FILE is loaded 


// OR, read from object 
NSString *content = [[NSUserDefaults standardUserDefaults] stringForKey:@"MY_M3U8"]; 
// it will contain the CONTENT of file 

Adım 4: çalar Bunu yapmalıydım

içinde çal. Yazmam gerekmiyor, değil mi?

+0

Ts dosyalarını kaydedebilirim ancak oynatamıyorum. Şifrelenmiş formda. ve muhtemelen şifre çözme anahtarını alamıyorum. Bunun için EXT-X-ALLOW-CACHE = Evet'e ihtiyacım var. Pls, – Daisy

+0

'u önerdiğini, şifresinin çözüldüğünü söylemediniz. Şifresini çözmek için şifrelemeyi bilmeliyiz. – Raptor

+1

@Raptor, yerel olarak depolanan .m3u8 dosyalarını oynatabildiğinizden emin misiniz? Anlayabildiğim kadarıyla, oyuncu bunu desteklemiyor - dosyanın HTTP üzerinden indirilmesi gerekiyor (evet, biliyorum, aptalca biliyorum). Burada insanların da keşfettiği bir dizi konu var: 1) http://stackoverflow.com/questions/3199232/mpmovieplayercontroller-and-local-m3u8-files 2) http://stackoverflow.com/questions/15427360/how -to-play-m3u8-or-ts-dosya-in-ios –

İlgili konular