UIWebview не възпроизвежда mp4 видео

Опитах се да възпроизведа .mp4 видео от уебсайт (с HTML5 Video Tag) с UIWebView. Устройството и симулаторът на iPhone / iPad показва само черна рамка със зачеркнат бутон за възпроизвеждане. Ако току-що извиках този уебсайт във версията на Safari за Mac, е възможно да го пусна. Какъв е проблема?

Това не е локален файл. HTML изглежда така:

    <?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="/bg../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>

person iach    schedule 18.12.2012    source източник
comment
това видео е от локален файл, можете ли да публикувате своя HTML код.   -  person arthankamal    schedule 18.12.2012
comment
Ако искате да пуснете видеоклипа само в този уебсайт, вижте VideoPlayerKit.   -  person Ben Lu    schedule 15.02.2013
comment
Току-що погледнах изходния код на страницата на http://my.barackobama.com . . ./video/shared-culture.mp4 и той декларира етикета за вграждане на филм с атрибута: type="application/x-shockwave-flash". За Apple HLS се нуждаете от H.264/AVC в MPEG2.TS контейнери. HLS документация тук: https://developer.apple.com/resources/http-streaming/   -  person Rich Tolley    schedule 21.02.2013
comment
@RichTolley Трябва да направите това отговор, а не коментар.   -  person Caleb    schedule 22.02.2013
comment
уморихте ли се да го играете на истинско устройство??   -  person Meera    schedule 22.02.2013


Отговори (7)


Възможно е да не е в удобен за iPhone формат.

Плъзнете mp4 файла в iMovie и след това щракнете върху Споделяне -> Експортиране на филм и изберете един от форматите, съвместими с iPhone.

person Vinny Coyne    schedule 21.02.2013
comment
Трябваше да прекодирам видеоклипа си с Adobe Media Encoder, за да работи (iOS 8.3). Видеото ми беше доста кратко (3 секунди). - person Chris; 13.06.2015

Един от начините, по който видеото може да не успее да се възпроизведе в UIWebView, е ако уеб сървърът, хостващ видео файла, не поддържа диапазони от байтове. UIWebView не изтегля целия .mp4 файл наведнъж; вместо това предава поточно видеото, като изисква части от файла. Повечето сървъри в днешно време поддържат диапазони от байтове, но ако вашият не поддържа или ако сте го изключили по някаква причина, няма да можете да обслужвате видео на iOS устройство.

person Caleb    schedule 22.02.2013

Звучи като проблем с кодека. Можете да видите какви кодеци използва файлът, ако го отворите във VLC на вашия компютър, отидете на Window->Media Information->Codec Details. Отговорът тук има връзки към Apple документи, където ще намерите поддържани видео и аудио кодеци:

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

person Brendon    schedule 19.02.2013

Може да е проблем с относителния ../ път, който използвате. Опитайте да използвате пълен абсолютен път - започвайки с http://.

person Luke    schedule 21.02.2013

Търсех същото нещо в приложение C#.NET Core Ios Webview. За мен настройка на тези превключватели на контролата WebView (след настройка на html в уеб изгледа):

WebView.AllowsLinkPreview = true;
WebView.AllowsInlineMediaPlayback = true;
WebView.AllowsPictureInPictureMediaPlayback = true;

Работи за мен.

person ikwillem    schedule 28.09.2018

Аз също имам този проблем, имам 2 .mp4, но единият може да се използва и един не, опитвам се да форматирам тип file.mp4 до .mp4 за IPad и работи, мисля, че трябва да опитате.

person Masataga.Takashi    schedule 10.02.2014

Програмирането на mp4 видео на iPhone не е много трудно. Просто трябва да направим ЕДНО допълнително плъзгане и пускане.

моля, вземете нов проект за единичен изглед. след това във файла ViewController.m просто копирайте и поставете този код

    #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

След това създайте HTML файл с име testingHTML.html

и копирайте и поставете следния код в 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>

Плъзнете и пуснете видео от тип MP4 на две места:

Първо: Плъзнете видеото от HDD към раздела Project [Лев раздел на Xcode] Второ: От левия раздел Xcode, отново ПЛАХНЕТЕ СЪЩИЯ ВИДЕО ФАЙЛ към Project--->Build Phases--->Copy Bundle Resources

Обикновено ресурсите на пакета за копиране имат файловете на проекта, но понякога не съдържат видео файловете.

СЕГА ПУСКАЙТЕ проекта и се НАСЛАДЕТЕ на видеото......!!

Късмет

person MK HASAN    schedule 23.08.2015
comment
Опитвам се да пусна два видеоклипа в два уеб изгледа, но възпроизвеждам само едно видео. - person Gami Nilesh; 12.01.2017