2013-03-15 23 views
6

Kann mir jemand helfen, wie man lokal m3u8 Datei von URL speichert, um später offline zu spielen. Wird EXT-X-allow-CACHE mich in diesem matter.` helfenm3u8 Datei für iPhone - wie man es lokal speichert, um später zu spielen

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

I & Spiel streamen kann m3u8 direkt von url. Aber nicht in der Lage, es lokal zu speichern und analysieren .ts Dateien und spielen ... Pls Guide.

+0

Sie meinen, Sie machen eine iOS App speichern m3u8? – Raptor

+0

@shivanRaptor: Ja – Daisy

+0

Zeigen Sie uns Ihre aktuellen Codes. Wo bist du stecken geblieben? – Raptor

Antwort

-2

Schritt 1: & speichern

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) 
} 

Schritt 2 die Datei herunterladen: Speichern Sie die Datei

Sie entweder als Datei speichern oder als Objekt speichern.

// 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"]; 

Schritt 3: Lesen Sie die Datei

// 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 

Schritt 4: Gehen Sie in Ihrem Player

Sie es getan haben sollte. Ich brauche nicht zu schreiben, ja?

+0

Ich könnte die ts-Dateien speichern, aber nicht in der Lage, es zu spielen.Es ist in verschlüsselter Form. und wahrscheinlich bekomme ich den Entschlüsselungsschlüssel nicht. Dazu brauche ich EXT-X-ALLOW-CACHE = Ja. Bitte schlagen Sie – Daisy

+0

Sie nicht erwähnt, es ist entschlüsselt. Um zu entschlüsseln, müssen wir wissen, wie man verschlüsselt. – Raptor

+1

@Raptor, bist du sicher, dass du .m3u8 Dateien abspielen kannst, die lokal gespeichert sind? Soweit ich das beurteilen kann, unterstützt der Player das nicht - die Datei muss über HTTP heruntergeladen werden (ja, ich weiß, dass es dumm ist). Hier sind ein paar Threads, wo die Leute es auch entdeckt haben: 1) http://stackoverflow.com/questions/3199232/mpmovieplayercontroller-and-local-m3u8-files 2) http://stackoverflow.com/questions/15427360/how -to-play-m3u8-oder-ts-Datei-in-ios –