2012-12-18 10 views
8

Ho provato a riprodurre un video .mp4 da un sito Web (con il tag HTML5 Video) con UIWebView. Il dispositivo e il simulatore di iPhone/iPad mostra solo una cornice nera con un pulsante di riproduzione barrato. Se ho appena chiamato questo sito Web nella versione Safari Mac, è possibile riprodurlo. Qual è il problema?UIWebview dos not playing mp4 Video

Non è un file locale. Il codice html è il seguente:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta charset="utf-8" /> 
     <link rel="stylesheet" type="text/css" href="../css/shared-culture.css" /> 
    </head> 
    <body> 
     <section class="base"> 
      <hgroup> 
       <h1>creative commons</h1> 
       <h2>a shared culture</h2> 
      </hgroup> 

       <p>To celebrate our 2008 fundraising campaign, Creative Commons has 
        released “A Shared Culture,” a short video by renowned filmmaker <a 
         href="http://en.wikipedia.org/wiki/Jesse_Dylan">Jesse Dylan</a>. Known for 
        helming a variety of films, music videos, and the Emmy Award-winning <a 
         href="http://my.barackobama.com/page/invite/yeswecanvideo">“Yes We Can”</a> 
        Barack Obama campaign video collaboration with rapper will.i.am, Dylan created 
        “A Shared Culture” to help spread the word about the Creative Commons mission. </p> 
       <!-- height="240" width="360" --> 
       <video id="video1" controls="controls"> 
        <source src="../video/shared-culture.mp4" type="video/mp4"/> 
        <source src="../video/shared-culture.webm" type="video/webm"/> 
        <div class="errmsg"> 
         <p>Your Reading System does not support (this) video.</p> 
         <pre><code> 
&lt;video id="video1" controls="controls"&gt;      
    &lt;source src="../video/shared-culture.mp4" type="video/mp4"/&gt; 
    &lt;source src="../video/shared-culture.webm" type="video/webm"/&gt;  
&lt;/video&gt; 
         </code></pre> 
        </div> 
       </video> 
       <p>In the video, some of the leading thinkers behind Creative Commons 
        describe how the organization is helping “save the world from failed sharing” 
        through free tools that enable creators to easily make their work available to 
        the public for legal sharing and remix. Dylan puts the Creative Commons system 
        into action by punctuating the interview footage with dozens of photos that have 
        been offered to the public for use under CC licenses. Similarly, he used two 
        CC-licensed instrumental pieces by Nine Inch Nails as the video’s soundtrack 
        music. These tracks, “17 Ghosts II” and “21 Ghosts III,” come from the Nine Inch 
        Nails album Ghosts I-IV, which was released earlier this year under a Creative 
        Commons BY-NC-SA license. (See <a 
         href="http://creativecommons.org/videos/a-shared-culture">attribution</a>.) 
       </p> 

     </section> 

    </body> 
</html> 
+0

è quel video dal file locale, puoi pubblicare il tuo codice 'HTML'. – arthankamal

+0

Se si desidera riprodurre il video solo in quel sito Web, controllare [VideoPlayerKit] (https://github.com/ign/VideoPlayerKit). –

+1

Basta dare un'occhiata al sorgente della pagina su http://my.barackobama.com. . ./video/shared-culture.mp4', e dichiara il tag embed del film con l'attributo: 'type =" application/x-shockwave-flash "'. Per Apple HLS, hai bisogno di H.264/AVC in contenitori MPEG2.TS. Documentazione HLS qui: https://developer.apple.com/resources/http-streaming/ –

risposta

2

Sembra un problema di codec. Puoi vedere quali codec il file utilizza se lo apri in VLC sul tuo computer, vai a Finestra-> Informazioni Media-> Dettagli Codec. La risposta here link ai documenti di Apple, dove troverete supportati codec video e audio:

https://developer.apple.com/library/ios/#documentation/mediaplayer/reference/MPMoviePlayerController_Class/Reference/Reference.html

https://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/MultimediaPG/UsingAudio/UsingAudio.html

9

Non possono essere in formato iPhone-friendly.

trascinare il file mp4 in iMovie e quindi fare clic su Condividi -> Esporta filmato e selezionare uno dei formati compatibili con iPhone.

+0

Ho dovuto ricodificare il mio video con Adobe Media Encoder per farlo funzionare (iOS 8.3). Il mio video è stato piuttosto breve (3 secondi). – Chris

1

Potrebbe essere un problema con il relativo percorso ../ che si sta utilizzando. Prova a utilizzare un percorso assoluto completo, a partire da http://.

4

Uno dei modi in cui il video non può essere riprodotto in una UIWebView è se il server Web che ospita il file video non supporta gli intervalli di byte. UIWebView non scarica l'intero file .mp4 in una sola volta; invece, trasmette il video in streaming richiedendo porzioni del file. La maggior parte dei server in questi giorni supporta gli intervalli di byte, ma se il tuo non lo fa, o se lo hai spento per qualche motivo, non sarai in grado di pubblicare video su un dispositivo iOS.

0

devo anche questo problema, io ho 2 .mp4 ma si può usare e uno no, provare a formattare il tipo di file .mp4-.mp4 per IPad ed è il lavoro, penso che si dovrebbe provare.

-1

Per riprodurre video mp4 su iPhone la programmazione non è molto difficile. Dobbiamo solo fare un altro drag and drop.

Si prega di prendere un nuovo progetto di vista singola. poi nel file ViewController.m basta copiare e incollare questo codice

#import "ViewController.h" 

    @interface ViewController() 

    @end 

    @implementation ViewController 
    @synthesize webView; 
- (void)viewDidLoad { 
[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 

CGRect screenRect = [[UIScreen mainScreen] bounds]; 

CGFloat screenWidth = screenRect.size.width; 
CGFloat screenHeight = screenRect.size.height; 

webView=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0,screenWidth,screenHeight)]; 


NSURL *url = [[NSBundle mainBundle] URLForResource:@"testingHTML" withExtension:@"html"]; 
NSLog(@"%@",url); 
[self.webView loadRequest:[NSURLRequest requestWithURL:url]]; 



// NSURL *nsurl=[NSURL URLWithString:url]; 
//NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl]; 
// [webView loadRequest:nsrequest]; 
[self.view addSubview:webView]; 





} 

- (void)didReceiveMemoryWarning { 
[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 

@end 

Poi creare file HTML denominato come testingHTML.html

e copiare e incollare il seguente codice nel file HTML

<!DOCTYPE html> 
<html> 
<head></head> 

<body> 
    <center> <video width="250" height="304" controls preload> 
     <source src="video1.mp4" type="video/mp4"> 
      </video> </center> 

    <p>Thanks to Md Kamrul Hasan [email protected]</p> 

    </body> 
</html> 

Trascinare un video di tipo MP4 in due posizioni:

Primo: trascinare il video dall'HDD alla scheda del progetto [scheda sinistra dello Xcode] Secondo: Dalla scheda sinistra Xcode, ancora DRAG THE SAME VIDEO FILE per Project ---> Build Fhases ---> Copy Bundle Resources

Normalmente, Copia le risorse del bundle hanno i file di progetto ma alcune volte non contengono i file video.

ORA ESEGUI il progetto e GODITI il video ...... !!

Good Luck

+0

https://drive.google.com/file/d/0B-YyYsAL0QKLRWJRdHVxbXhwNUU/view?usp=sharing –

+0

Provo a riprodurre due video in due webview ma riproduco solo video in single. –