Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 4

0
votes
answers
48 views
+10

在bootstrap模式框中打開youtube視頻

1

我列出了sql表中的視頻數據。在bootstrap模式框中打開youtube視頻

字段在臨表: - sidebar_video_id(自動遞增) - sidebar_video_nev - sidebar_video_link(完整的URL) - sidebar_video_v_id(從網址高端視頻ID)

我想要的,是當我點擊在每個視頻中,它會打開並在引導模式框中播放。現在盒子打開,但是它是空的,我沒有得到任何控制檯錯誤。

<?php 
$get_videos = mysqli_query($kapcs, "SELECT * FROM sidebar_video"); 
if(mysqli_num_rows($get_videos) > 0) 
{ 
    while($vid = mysqli_fetch_assoc($get_videos)) 
    { 
     echo '<div class="sidebar_youtube_box">'; 
     echo '<a href="#" id="'.$vid['sidebar_video_v_id'].'" data-url="'.$vid['sidebar_video_link'].'" class="open_youtube_modal" title="'.$vid['sidebar_video_nev'].'"><img src="http://img.youtube.com/vi/'.$vid['sidebar_video_v_id'].'/hqdefault.jpg" class="img-responsive"></a>'; 
     echo '</div>'; 
    } 
} 
?> 


<div class="modal fade" id="videoModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Bezárás</span></button> 
     <h4 class="modal-title" id="myModalLabel">Videó megtekintése</h4> 
     </div> 
     <div class="modal-body" id="video_modal_body"> 

     </div> 
    </div> 
    </div> 
</div> 

$('.open_youtube_modal').click(function(e) { 
     e.preventDefault(); 
     var v_id = $(this).attr('id'); 
     var full_url = $(this).attr('data-url'); 

     var embed_html = '<iframe width="560" height="315" src="' + full_url + '" frameborder="0" allowfullscreen></iframe>'; 

     //alert(embed_html); 

     $('#video_modal_body').html(embed_html); 
     $('#videoModal').modal('show'); 

    }); 
+0

'full_url'返回正確的值? /控制檯或PHP錯誤日誌中的任何錯誤? – Pedram

沙发
0
0

您必須使用https://www.youtube.com/embed/[videoId]格式,而不是https://www.youtube.com/watch?v=[videoId]。 Youtube不允許與後者進行交叉起源。

+0

你好!這樣可行!但是,如果我關閉模式,我該如何停止視頻? – KissTom87

+0

@ KissTom87那麼,這是另一個問題,但最簡單的方法是在'hidden.bs.modal'事件中銷燬'#video_modal_body'的內容,如下所示: $('#videoModal')。on('hidden .bs.modal',function(e){$('#video_modal_body')。html('');}) – dferenc

+0

非常感謝,它的工作! :) – KissTom87

0
votes
answers
37 views
+10

如何根據節點的長度和質量驗證節點js中的視頻

0

我一直在通過網絡進行搜索,如何上傳視頻並根據其長度和質量來驗證它,如480或720最小。此外,如果它沒有任何通姦內容。我的開發環境是Node以及其中的快速框架。我正在尋找可能的插件建議,我可以制定我自己如何配置它與我的應用程序的種類。任何類型的建議都會非常有幫助。謝謝。如何根據節點的長度和質量驗證節點js中的視頻

+0

視頻文件具有元數據,它應該能夠從文件頭中讀取。 –

+0

謝謝,讓我看看它,如果有任何我可以訪問元數據的節點插件,你能指導我嗎?雖然我理解你的答案,並發現它有幫助。 –

沙发
0
0

像視頻或分辨率的長度信息是文件元數據的一部分。爲了能夠讀取某些文件類型的元數據,您需要特定的庫。

這應該幫助視頻:

https://www.npmjs.com/package/ffmetadata

至少爲lenght和質量。至於內容 - 您需要通過一些內容檢測算法處理二進制數據,並結合機器學習大概:)我認爲沒有什麼比這更好的了。

+0

我正在調查它,彼得,會讓你知道更新。 –

0
votes
answers
49 views
+10

處理3,視頻庫:無法加載電影文件Ubuntu

0

請勿在Ubuntu 16.04上採樣代碼視頻庫處理3.3.6。在兩個文件夾中存檔 - 帶有草圖和數據文件夾。上一個安裝gstreamer 0.10-ffmpeg(解決以前的問題,不運行lib)任何你的想法? P.S.在Windows 7處理3,視頻庫:無法加載電影文件Ubuntu

import processing.video.*; 

Movie mov; 

void setup() { 
    size(640, 360); 
    background(0); 
    mov = new Movie(this, "transit.mov"); 
    mov.loop(); 
} 

void movieEvent(Movie movie) { 
    mov.read(); 
} 

void draw() {  
    image(mov, 0, 0); 

    float newSpeed = map(mouseX, 0, width, 0.1, 2); 
    mov.speed(newSpeed); 

    fill(255); 
    text(nfc(newSpeed, 2) + "X", 10, 30); 
} 

最好的問候, 科斯

沙发
0
0

感謝,所有的工作。 我找到了解決方案:我安裝了gstreamer-plugin-good,並解決了這個問題。 我不明白,爲什麼以前只安裝的GStreamer 0.10不幫

由於https://github.com/processing/processing-video/issues/52

+0

你應該[接受這個答案】(https://meta.stackexchange.com/questions/5234/how-接受答案的工作),所以問題沒有被標記爲需要答案。 –

0
votes
answers
47 views
+10

播放視頻向後

0

我想要什麼,基本上扭轉了AVAsset和輸出的視頻文件,我發現這個鏈接 - https://github.com/tempire/ReverseAVAsset/blob/master/AVAsset.swift播放視頻向後

這是我做過什麼:

import UIKit 
import AVFoundation 
import AVKit 

class ViewController: UIViewController { 

    var playerViewController = AVPlayerViewController() 
    var playerView = AVPlayer() 


    override func viewDidAppear(_ animated: Bool) { 
     super.viewDidAppear(animated) 

     let path = Bundle.main.path(forResource: "video", ofType: "mov") 
     let outputUrl = URL(fileURLWithPath: "(NSUUID().uuidString)video.mov") 

     let originalAsset = AVAsset(url: URL(fileURLWithPath: path!)) 
     let reversedAsset = originalAsset.reversedAsset(outputUrl) 



     playerView = AVPlayer(playerItem: AVPlayerItem(asset: reversedAsset!)) 
     playerViewController.player = playerView 

     present(playerViewController, animated: true) { 
      self.playerViewController.player?.play() 
     } 

    } 


} 

但其沒有工作,這是我結束了:

enter image description here

我覺得我做的事情錯outputURL,請幫助,如果你知道該怎麼做

+0

是什麼扭轉了AVAsset和輸出的視頻文件指的是正確的方法是什麼? –

+0

拍攝視頻並將其倒轉@ElTomato –

+0

向後播放視頻@ElTomato –

沙发
0
0

問題是與輸出URL,這是做

import UIKit 
import AVFoundation 
import AVKit 

class ViewController: UIViewController { 

    var playerViewController = AVPlayerViewController() 
    var playerView = AVPlayer() 


    override func viewDidAppear(_ animated: Bool) { 
     super.viewDidAppear(animated) 

     let path = Bundle.main.path(forResource: "video", ofType: "mov") 

     //Correct way 
     var outputURL: URL? 
     do { 
      let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! 
      outputURL = documentsURL.appendingPathComponent("(NSUUID().uuidString)newvideo.mp4") 

     } 

     let originalAsset = AVAsset(url: URL(fileURLWithPath: path!)) 
     let reversedAsset = originalAsset.reversedAsset(outputUrl) 



     playerView = AVPlayer(playerItem: AVPlayerItem(asset: reversedAsset!)) 
     playerViewController.player = playerView 

     present(playerViewController, animated: true) { 
      self.playerViewController.player?.play() 
     } 

    } 


} 
0
votes
answers
32 views
+10

如何下載視頻。此頁面必須在iFrame中訪問

0

我有點擊「開放源代碼」然後點擊「mp4」文件下載視頻,然後下載視頻。但是,由於某種原因,我不能這樣做。如何下載視頻。此頁面必須在iFrame中訪問

視頻源之際, -

< iframe中的allowFullScreen = 「」 FRAMEBORDER = 「0」 HEIGHT = 「360」 mozallowfullscreen = 「」 SCROLLING = 「否」 SRC =「HTTP://104.199.144。 ?XYZ/bplayer/player.php ID = 4170221120170" 風格= 「溢出:隱藏」 webkitallowfullscreen = 「」 WIDTH = 「640」>

當我嘗試加載 「」 http://104.199.144.xyz/bplayer/player.php?id=4170221120170「 它說 -

此頁面必須在iFrame中訪問。

我對此一無所知。以前,我可以通過點擊頁面源代碼輕鬆下載視頻。但是,現在我不能。

任何幫助,將不勝感激。 (用通俗的話說,如果possible..step一步的指導將是非常非常有幫助。)

預先感謝您

+0

如果你沒有提供真正有效的活動示例url,任何人都不可能向你提供分步指南。 – Harry

沙发
0
0

在iframe中的src標籤是指源填充的iframe,而不是源我認爲你期待的視頻。

換句話說,iframe的src指向HTML文檔或「網頁」,而視頻標記的src指向(通常)視頻文件。

0
votes
answers
32 views
+10

Android(Xamarin)通過rtsp從IP Cam流視頻://

0

更新:我通過使用vlc-sdk for android解決了這個問題。Android(Xamarin)通過rtsp從IP Cam流視頻://

所以我面臨這個問題,我有一個URL從IP攝像機提供流。

這件事情就像

RTSP://192.168.x.xxx:8554/BWC

注:有喜歡的MP4沒有擴展名或.mov

我試着我的電腦上的VLC播放器中的URL以及Android應用程序「rtsp player」都可以使用。他們都向我展示了來自凸輪的流。

現在我需要編寫一個應用程序,它也顯示來自凸輪的流,我必須用Xamarin編寫它。

我有以下代碼:

[Activity(Label = "StreamActivity", ScreenOrientation = ScreenOrientation.Portrait, HardwareAccelerated = true, Theme = "@style/Theme.AppCompat.Light.NoActionBar")] 
public class StreamActivity : AppCompatActivity 
{ 
    String urlPrefix = "rtsp://"; 
    String urlSuffix = ":8554/BWC"; 

    VideoView streamView { get; set; }  

    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 
     SetContentView(Resource.Layout.StreamView); 

     var ipAddress = Intent.GetStringExtra("ip"); 
     var url = urlPrefix + ipAddress + urlSuffix; 
     var vidUri = Android.Net.Uri.Parse(url); 

     streamView = FindViewById<VideoView>(Resource.Id.view_stream); 
     streamView.SetMediaController(new MediaController(this)); 
     streamView.SetVideoURI(vidUri); 
     streamView.RequestFocus(); 
     streamView.Start(); 
    } 
} 

在主要活動我只需輸入IP,並觸及按鈕,然後StreamActivity開始,但我打的按鈕後,新的活動開始,我也得到一個錯誤信息:

無法播放該視頻

在logcat中我得到以下警告和錯誤:

11-11 18:14:56.594 W/MediaPlayer(18879):無法打開rtsp://192.168.4.103:8554/BWC:java.io.FileNotFoundException:無內容提供者:rtsp: //192.168.4.103:8554/BWC

11-11 18:15:43.688:E/MediaPlayer的(18879):錯誤(100,0)

任何幫助,將不勝感激!

+1

此視頻饋送是否需要驗證? –

+0

或只是incase,嘗試ImageView以及按照建議在https://stackoverflow.com/questions/30572745/rtsp-stream-will-not-play-with-videoview-no-content-provider-error –

+0

沒有它不需要認證。但我會用imageView來試用它。 –

沙发
0
0

有一種解決方案稱爲浪涌,可能有所幫助 - https://instil.co/surge/

0
votes
answers
66 views
+10

從CVPixelBuffer

0

創建CMSampleBuffer我得到一個CVPixelBuffer從ARSessionDelegate:從CVPixelBuffer

func session(_ session: ARSession, didUpdate frame: ARFrame) { 
    frame.capturedImage // CVPixelBufferRef 
} 

但我的應用程序的另一部分(即我不能改變)使用CMSampleBuffer。

CMSampleBuffer是CVPixelBuffer的容器。

爲了創建一個CMSampleBuffer我可以使用此功能:

func CMSampleBufferCreateReadyWithImageBuffer(_ allocator: CFAllocator?, 
              _ imageBuffer: CVImageBuffer, 
              _ formatDescription: CMVideoFormatDescription, 
              _ sampleTiming: UnsafePointer<CMSampleTimingInfo>, 
              _ sBufOut: UnsafeMutablePointer<CMSampleBuffer?>) -> OSStatus 

唯一缺少的參數對於我來說是sampleTiming - 我怎麼能提取從CVPixelBuffer?

沙发
0
1

的sampleTiming主要包含presentationTimeStamp,您可以通過以下代碼輕鬆創建:

let scale = CMTimeScale(NSEC_PER_SEC) 
let pts = CMTime(value: CMTimeValue(frame.timestamp * Double(scale)), 
       timescale: scale) 
var timingInfo = CMSampleTimingInfo(duration: kCMTimeInvalid, 
            presentationTimeStamp: pts, 
            decodeTimeStamp: kCMTimeInvalid) 
489
votes
answers
24 views
+10

使用JQuery播放/暫停HTML 5視頻

我正在嘗試使用JQuery控制HTML5視頻。我在選項卡式界面中有兩個剪輯,總共有六個選項卡,其他只有圖像。我試圖在單擊其選項卡時播放視頻剪輯,然後在單擊任何其他選項時停止播放。

這一定是一件簡單的事情,但我似乎無法讓它工作,我用來播放視頻的代碼是:

  $('#playMovie1')。click(function(){$('#movie1')。play();});   

我已經讀過視頻元素需要在函數中公開才能控制它,但找不到示例。我能夠使用JS工作:

  document.getElementById('movie1')。play();   

任何建議都會很棒。感謝

up vote 321 down vote accepted favorite
沙发
+3210
+50
<p>您的解決方案在此處顯示問題 - <code> play </ code>不是jQuery函數,而是DOM元素的函數。因此,您需要在DOM元素上調用它。您舉例說明如何使用本機DOM函數執行此操作。jQuery等價 - 如果你想這樣做以適應現有的jQuery選擇 - 將是<code> $('#videoId')。get(0).play()</ code>。(<a href="http://api.jquery.com/get/" rel="noreferrer"> <code> get </ code> </a>從jQuery選擇中獲取本機DOM元素。)</ p>

這很棒,完美無缺,非常感謝。很好地理解DOM也很好。 - Barny 83 2011年1月10日15:39

使用JQuery以這種方式控制視頻似乎會導致iPhone上的播放問題。我在選項卡中有視頻元素,jquery顯示了這一點,但是然後單擊視頻開始箭頭不會啟動剪輯。當我刪除$('#videoId')。get(0).play()行沒有問題。圍繞這個最好的方法是什麼?我以為我可以用iOS的條件聲明刪除js - 視頻不會自動啟動iOS設備,所以很樂意這樣做 - 或者是否有更簡單的解決方案?任何幫助非常感謝。 - Barny 83 2011年3月3日15:59

如何暫停頁面上的所有

@russellsayshi - 不,那隻播放一個視頻; prismspecs要求所有視頻。正確的語法:$('video')。each(this.play()); 全力以赴; $(“視頻”)各(this.pause())。暫停所有。each()是一個jQuery函數,傳遞給它的是一個javascript函數,它應用於每個元素。處理每個元素時,這表示該元素。 - ToolmakerSteve 2014年8月15日2:21

如果只想要第一個元素,可以通過用[0]替換.get(0)來簡化。所以$('video')[0] .play(); 或者對於特定的id $('#videoId')[0] .play();. - ToolmakerSteve 2014年8月15日2:25

+530
<p>這就是我設法讓它工作的方式:</ p> <pre> <code> jQuery(document).ready(function($){$('。myHTMLvideo')。click(function(){this .paused?this.play():this.pause();});}); </ code> </ pre> <p>我所有的HTML5標籤都有“myHTMLvideo”類</ p>

請注意,不需要包裝jQuery,因此您可以通過用以下方法替換三元行來節省開銷:this.paused?this.play():this.pause(); - Pete Watts 2014年5月9日7:27

+450
<p>你可以做</ p> <pre> <code> $('video')。trigger('play'); $('視頻')的觸發器(“暫停”); </代碼> </ PRE>

你甚至可以切換:$('視頻')。觸發器($('video')。prop('paused')?'play':'pause'); - DaríoPm17年6月14日19:17

+200
<p>為什麼需要使用jQuery?您提出的解決方案可行,並且它可能比構建jQuery對象更快。</ p> <pre> <code> document.getElementById('videoId')。play(); </代碼> </ PRE>

如果你堅持使用jQuery實現,那麼請查看lonesomeday的解決方案(也解釋為什麼你不能只調用jQuery對像上的play)。 - sudo工作2011年1月10日13:10

我以為我會在其他jQuery中使用代碼,並且可能會這樣做,但是因為它只是使用那條線所以我想它可能已經完成了我的代碼......我也不確定如果這是混合的好習慣。無論如何,謝謝你的建議。 - Barny 83 2011年1月10日15:40

如果你已經為movie1實例化了一個jQuery對象,通過$('movie1')來實現其他jQuery動作,那就沒關係了。但是,如果你只是在這個地方這樣做,你會發現一些性能損失。它可能不夠明顯,但我喜歡優化很多。 - sudo工作2011年1月11日在1:52

@sudowork--認真?你在開始視頻播放時討論性能損失?如果您的設備足夠快以播放視頻,那麼在沒有用戶注意的情況下執行一系列jQuery操作就足夠快了。 - ToolmakerSteve 2014年8月15日2:30

+190

為了暫停多個視頻,我發現這很好用:

  $(“video”)。each(function(){$(this).get(0).pause( );});   

這可以放入點擊功能,非常方便。

你也可以這樣做:$(“video”)。each(function(){this.pause()}); - Marcel M. 2014年4月22日17:43

$(this) - >你從“this”對象創建jquery對象。get(0) - >你從jquery對像中獲取原始的“this”對象...這=== $(this).get(0) - Blackfire'On雄師18年8月21日11:28

+130
<p>作為lonesomeday答案的延伸,你也可以使用</ p> <pre> <code> $('#playMovie1')。click(function(){$('#movie1')[0] .play ();}); </ code> </ pre> <p>請注意,沒有調用get()或eq()jQuery函數。DOM的數組用於調用play()函數。這是記住的捷徑。</ p>
+100
<p>我喜歡這個:</ p> <pre> <code> $('video')。click(function(){this [this.paused?'play':'pause']();}) ; </ code> </ pre> <p>希望有所幫助。</ p>

令人敬畏的代碼 - 愛德華於2016年9月14日16:45

+40
<p>我使用FancyBox和jQuery嵌入視頻。給它一個ID。</ p> <p>也許不是最好的解決方案可以不同地切換播放/暫停 - 但對我來說很簡單並且工作正常!:)</ p> <p>在</ p> <p>`</ p> <pre> <code>&lt; input type =“hidden”id =“current_video_playing”&gt; &lt; input type =“hidden”id =“current_video_status”value =“playing”&gt; &lt; video id =“video-1523”autobuffer =“false”src =“movie.mp4”&gt;&lt; / video&gt; &LT;腳本&GT; //使用空格鍵播放暫停$(文檔).keypress(function(e){theVideo = document.getElementById('current_video_playing')。value if(e.which == 32){if(document.getElementById('current_video_status') 。value =='playing'){document.getElementById(theVideo).pause(); document.getElementById('current_video_status')。value ='paused'} else {document.getElementById('current_video_status')。value ='playing'document.getElementById(theVideo).play(); }}}; &lt; / script&gt;`</ code> </ pre>

這看起來很有希望:ricostacruz.com/jquery.transit。這是麻省理工學院的許可證,所以你可以將其合併,或者研究它以了解他是如何做到的。 - Robert Harvey♦12年6月21日5:19

+20
<p>這是我們可以使用的簡單方法</ p> <p>在jquery按鈕單擊功能</ p> <pre> <code> $(“#button”)。click(function(event){$( '視頻')。觸發('播放'); $('視頻')。觸發('暫停');} </ code> </ pre> <p>謝謝</ p>
+10
<p>請注意,在嘗試調用之前,請確保檢查瀏覽器是否支持視頻功能:</ p> <pre> <code> if($('#movie1')[0]。 play)$('#movie1')[0] .play(); </ code> </ pre> <p>這樣可以防止不支持視頻標記的瀏覽器出現JavaScript錯誤。</ p>
+10
<p>通過JQuery使用選擇器</ p> <pre> <code> $(“video_selector”)。trigger('play'); $(“video_selector”)觸發(“暫停”); $(“div.video:first").trigger('play');$("div.video:first").trigger('pause'); $(“#VIDEO_ID”)觸發('玩'); $(“#VIDEO_ID”)觸發(“暫停”); </ code> </ pre> <p>通過Javascript使用ID </ p> <pre> <code> video_ID.play(); video_ID.pause(); </ code> </ pre> <p> OR </ p> <pre> <code> document.getElementById('video_ID')。play(); 的document.getElementById('VIDEO_ID')暫停(); </代碼> </ PRE>

表現明智我不能指望這是一個好主意。“哦,只需將它應用到頁面上的所有內容,這會讓事情變得更容易!” - Lodewijk 2014年8月3日13:19

應該選擇“.notransition”和“.notransition *”來完全有效。 - 內森2014年12月27日6:56

0
<p>使用此.. <code> $('#video1')。attr({'autoplay':'true'}); </ code> </ p>

“我試圖在點擊標籤時播放視頻片段” - 因此需要進行事件控制處理。 - davidenke 2015年2月18日11:43

0
<p>我也讓它像這樣工作:</ p> <pre> <code> $(window).scroll(function(){if($(window).scrollTop()&gt; 0)document.querySelector( '#video')。pause();否則是document.querySelector('#video')。play();}); </代碼> </ PRE>

首先這很棒,謝謝!其次還應該設置一些其他屬性; 請參閱github.com/japgolly/test-state/blob/master/util/shared/src/test/ - Golly 10月15日'18時間:2:04

@Golly那些其他屬性可能影響最終設計 - jonperl 18年11月27日14:33

你的意思是:JS代碼!? - user3050478 4月10日14:10

耶士

0

@loneSomeday解釋得很漂亮,這裡有一個解決方案可能會讓你知道如何實現播放/暫停功能

點擊播放/暫停視頻

是的我認為這是最好的方法,事實上插件可以將css塊注入頁面 - Sam Saffron 12年6月21日在5:32

你確定沒有!重要的CLASS標尺會覆蓋ID 1嗎? - DaneSoul 12年6月21日在5:33

0
<pre> <code>&lt; video style =“min-width:100%; min-height:100%;”id =“vid”width =“auto”height =“auto”controls autoplay =“true”loop = “loop”preload =“auto”muted =“muted”&gt; &lt; source src =“video / sample.mp4”type =“video / mp4”&gt; &lt; source src =“video / sample.ogg”type =“video / ogg”&gt; &LT; /視頻&GT; &LT;腳本&GT; $(document).ready(function(){document.getElementById('vid')。play();}); &LT; /腳本&GT; </代碼> </ PRE>

Pl為你的答案添加一些解釋 - Sahil Mittal於17年7月28日6:33

然後你需要在事後重置它,所以你需要存儲它,這將導致相當數量的鍋爐板 - Sam Saffron 12年6月21日在5:28

0
<pre> <code>在此處輸入代碼&lt; form class =“md-form”action =“#”&gt; &lt; div class =“file-field”&gt; &lt; div class =“btn btn-primary btn-sm float-left”&gt; &lt; span&gt;選擇文件&lt; / span&gt; &lt; input type =“file”multiple&gt; &LT; / DIV&GT; &lt; div class =“file-path-wrapper”&gt; &lt; input class =“file-path validate”type =“text”placeholder =“上傳一個或多個文件”&gt; &LT; / DIV&GT; &LT; / DIV&GT; &LT; /形式&GT; &lt; video width =“320”height =“240”id =“keerthan”&gt;&lt; / video&gt; &lt; button onclick =“playVid()”type =“button”&gt;播放視頻&lt; /按鈕&GT; &lt; button onclick =“pauseVid()”type =“button”&gt;暫停視頻&lt; / button&gt; &LT;腳本&GT; (function localFileVideoPlayer(){var playSelectedFile = function(event){var file = this.files [0] var type = file.type var videoNode = document.querySelector('video')var fileURL = URL.createObjectURL(file)videoNode .src = fileURL} var inputNode = document.querySelector('input')inputNode.addEventListener('change',playSelectedFile,false)})()函數playVid(){keerthan.play(); function pauseVid(){keerthan.pause(); }&lt; / script&gt; </代碼> </ PRE> GT; (function localFileVideoPlayer(){var playSelectedFile = function(event){var file = this.files [0] var type = file.type var videoNode = document.querySelector('video')var fileURL = URL.createObjectURL(file)videoNode .src = fileURL} var inputNode = document.querySelector('input')inputNode.addEventListener('change',playSelectedFile,false)})()函數playVid(){keerthan.play(); function pauseVid(){keerthan.pause(); }&lt; / script&gt; </代碼> </ PRE> GT; (function localFileVideoPlayer(){var playSelectedFile = function(event){var file = this.files [0] var type = file.type var videoNode = document.querySelector('video')var fileURL = URL.createObjectURL(file)videoNode .src = fileURL} var inputNode = document.querySelector('input')inputNode.addEventListener('change',playSelectedFile,false)})()函數playVid(){keerthan.play(); function pauseVid(){keerthan.pause(); }&lt; / script&gt; </代碼> </ PRE> src = fileURL} var inputNode = document.querySelector('input')inputNode.addEventListener('change',playSelectedFile,false)})()函數playVid(){keerthan.play(); function pauseVid(){keerthan.pause(); }&lt; / script&gt; </代碼> </ PRE> src = fileURL} var inputNode = document.querySelector('input')inputNode.addEventListener('change',playSelectedFile,false)})()函數playVid(){keerthan.play(); function pauseVid(){keerthan.pause(); }&lt; / script&gt; </代碼> </ PRE>

嗨,歡迎來到Stack Overflow。在回答已經有很多答案的問題時,請務必添加一些額外的見解,說明為什麼您提供的回復是實質性的,而不是簡單地回應原始海報已經審查過的內容。這在“僅代碼”答案中尤為重要,例如您提供的答案。 - 3月19日8:23

你確定沒有!重要的CLASS標尺會覆蓋ID 1嗎? - DaneSoul 12年6月21日在5:33

是的,它會因為現在你的目標是#elem.no-transition,它比id更具體 - Moin Zaman Jun 21 '12 at 13:04

@MoinZaman Erm,但你沒有在你的CSS中定位#elem.no-transition,你只是針對.no-transition。也許你打算在你的CSS中寫#elem.no-transition? - Mark Amery 2013年5月15日9:41

0
votes
answers
71 views
+10

Android的WebView中的視頻播放聲音,但沒有hardwareAccelerated = true的圖像

0

我試圖從Android的WebView中的HTML5文件播放視頻。我已經嘗試了幾種解決方案,例如將視頻編碼爲H.264,但到目前爲止,我只能聽到沒有圖像的視頻的聲音。Android的WebView中的視頻播放聲音,但沒有hardwareAccelerated = true的圖像

代碼:

webView.setWebChromeClient(new WebChromeClient()); 
    settings.setJavaScriptEnabled(true); 
    settings.setPluginState(WebSettings.PluginState.ON); 
    settings.setLoadWithOverviewMode(true); 
    settings.setUseWideViewPort(true); 

    String data = "index.html"; 
    webView.loadUrl(data); 

    webView.setBackgroundColor(Color.TRANSPARENT); 
    webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null); 
    webView.clearCache(true); 

清單:

<application 
    android:hardwareAccelerated="true" 

任何幫助apreciated,謝謝。

+2

不確定你的具體問題,但我在一些應用程序中使用的示例在這裏 - https://gist.github.com/Offbeatmammal/3718414。我的猜測是'hardwareAccelerated'是一個問題(舊的Android設備),或者視頻編碼 – Offbeatmammal

+0

@Offbeatmammal謝謝你,你的鏈接幫助解決了我最初的問題。 現在,解決KitKat WebView呈現問題。 –

+0

偉大的:)我應該張貼它作爲答案,所以你可以勾選它來確認其他人? – Offbeatmammal

沙发
0
0

實例化一個webview,以便它能夠在大多數現代Android設備上播放視頻/音頻我使用以下Java代碼。這使得在清單中使用hardwareAccelerated時,格式良好的HTML和適當編碼的視頻內容可以可靠地播放。

package com.offbeatmammal.android.webview; 

import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebChromeClient; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.widget.RelativeLayout; 

public class WebViewActivity extends Activity { 

private WebView webView; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.webview); 

    webView = (WebView) findViewById(R.id.webView1); 

    webView.setWebChromeClient(new WebChromeClient()); 
    webView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND); 
    webView.getSettings().setJavaScriptEnabled(true); 

    // load the customURL with the URL of the page you want to display 
    String pageURL = "http://url/page.html"; 
    webView.loadUrl(pageURL); 

    //String customHtml = "<html><head><title>Sample</title></head><body><p>Sample</p></body></html>"; 
    //webView.loadData(customHtml, "text/html", "UTF-8"); 
    } 
} 
0
votes
answers
55 views
+10

.mp4文件不會在瀏覽器中播放,是否使用了一些奇怪的編解碼器?

0

我試圖調查爲什麼某個視頻在瀏覽器中無法正常播放,您可以在這裏看到視頻與可正常工作的視頻相比,還可以看到在我的桌面(OS X)上顯示預覽第二個視頻文件,但不是第一個預覽(牽連到我,有一些與編解碼器回事).mp4文件不會在瀏覽器中播放,是否使用了一些奇怪的編解碼器?

編解碼器按第一視頻的VLC(不在瀏覽器中運行):

enter image description here

編解碼器按第二視頻的VLC(在瀏覽器中正常工作):enter image description here

比較我的桌面上的視頻:

enter image description here

+1

在文件和報告上運行ffprobe。 – Mulvya

+1

你能發佈用於生成這些視頻的ffmpeg命令嗎? – UltrasoundJelly

+1

你爲什麼不分享你的視頻文件? –

沙发
0
1

發生故障的視頻看起來像TS容器(VLC顯示的PID)與MP4的擴展,所以儘管編解碼器本身是好的,容器格式本身不支持的。 如果屬實,則需要將其重新混合到真正的mp4容器才能使其正常工作。

+0

非常感謝這些信息,關心看看我今天剛剛提出的這個問題? :https://stackoverflow.com/questions/47820722/playing-webm-chunks-as-standalone-video – Antoine