I'm using an a-frame videosphere to display a rather large mp4 video file (70 MB). Everything works fine in Chrome and Firefox, but in Safari (both mobile and desktop) the video won't start to render before the whole video file has been fully loaded. It doesn't seem to be able to stream while loading. When I embed the source video file directly as an html5 video, Safari is able to buffer the video. Therefore I think the reason must be some a-frame internal stuff..
Did anybody else also encounter this problem and maybe has an idea what to do about it?
I hope somebody can help, thank you in advance!
PS.: a-frame version 0.7.0, Safari 11.0 (Desktop)
I found the reason in a-frame and submitted a pull-request (https://github.com/aframevr/aframe/pull/3089).
A-frame checks whether the referenced file is an image or not by setting the src on an Image-object and listening for 'load' and 'error' events. Safari does not fire those events until the source file is fully loaded, and only after that the video is displayed. I replaced the image check with a xhr head request and checking for the content-type.
Related
I have written an iframe code to embed a Zoom live stream of our church service on our website. http://www.firstchurchofgodjctn.org. It works "almost" perfectly, except it will not trigger the audio. Video streams perfectly, but there is no sound. I have tried almost everything I know to do - to override Chrome and MS Edge's autoplay issues - and I am at a loss. Upon loading the live stream (when the meeting starts) I get a prompt to "upgrade" my browser, computer audio is disabled. I can preview the html page I built through my design software, and the audio works. (I'm a self-taught programmer, so I'm surprised I've gotten this far!)
Here is the code:
Any ideas? Thank you in advance!
I'm trying to get video stream from phone camera and display the stream on a video element. This is the gist of the code I have:
...
navigator.mediaDevices.getUserMedia(constraints)
.then((stream)=>{
video.srcObject=stream;
video.volume=0;
video.mute=0;
video.play(); //error here on iOS Safari
...
While this works on all desktop and android browsers, this does not seem to work on iOS, giving me the error on line video.play().
From what I understand so far, this seems to be a safety measure by Safari on mobile to prevent websites from consuming too much of user's data. Meaning, unless specifically initiated by the user, the browser won't allow video.play()
I have tried adding "muted" attribute on the video element itself (besides just autoplay), but that did not seem to fix the issue.
So, I'd like to know if there are any other remedies to the issue here or if I should look for alternative ways to show the video feed. Any help/suggestions are greatly appreciated.
Have you tried adding playsinline to the video element?
https://webkit.org/blog/6784/new-video-policies-for-ios/
I've been looking for to long for a HTML video player which can load stream url's via Angular, and play them on IE9 ( via flash or whatever) on Chrome, FF, Mobile, ... via HTML5
I tried:
videogular
videoJS
video-for-everyone
sublimevideo
...
and looked on way to many pages for a working sollution. But couln't find any wich worked, I know this isn't the place to ask for a resource, documentation, file, ... But after searching for this long, this is prorbably the only place someone may know what I'm looking for
But for still asking a question for the player I got the most working:
that was the configuration on this page: http://www.realeyes.com/blog/2013/02/06/cross-browser-video-players/
this plays some videos but some uploaded videos (.mp4) won't play on chrome and FF
I have an Icecast server serving AAC+ (HE v2). I use JPlayer in my webpage to play the content. In Chromium without Flash Player it works just fine.
For Flash enabled browsers it does not work out of the box. I read that Icecast wants to have a "type=.flv" appended to the stream request to make the content playble by Flash Player, and although I have trouble finding the Icecast documentation about it, indeed it works on Firefox with Flash Player 11. But it does not play on other browsers with Flash 15 and above, namely Google Chrome on Linux, Firefox and Internet Explorer on Windows. Google Chrome plays it just fine by disabling Flash Player.
The audio data are downloaded correctly as shown by Developer Tools, audio is heard for about one second and then silence.
Is there anything I can try to make AAC+ playback possible with Flash Player ?
A link:
http://148.251.184.14:18044/chr_xmas
By default it returns a header with Content Type audio/aac. By appending "?type=.flv" (with a dot), it returns Content Type video/x-flv.
Turns out this is a jPlayer issue. I noticed at the bottom a mention by a jPlayer fork with a crude hack which is good enough for my purposes.
It didn't work right off the bat though, I changed the line to
if( myStream.bytesLoaded > 2048 ) return 1;
as it seems that in my case bytesTotal was not uint.MAX_VALUE. I had to compile a new .swf with flex and it worked like a charm on Firefox and Internet Explorer.
I have created an animation in Adobe Edge animate itself and its working fine on the browser. Next thing I have added a voice over to the animation which is completely synced and running perfectly using j-query.
Here's the problem which i am facing - while running the animation on the Google Chrome and Safari, I am getting double sound which is annoying. I have discovered on internet that Google chrome supports MP3, OGG, WAV formats for the audio. And Mozilla supports the OGG format. I have connected the two formats with animation using j-query which are MP3 and OGG format. And Google Chrome is reading the both formats which is creating an issue.
Please help me out to remove the double sound issue in Chrome.
Regards
Vikas Sharma
instead of using an <audio> tag, you might try using the html5 audio object and manipulating it with javascript.
here's an example:
var audiophile = new Audio();
audiophile.src = 'audiofile.mp3';
audiophile.play();
that way you're only referencing one source file, and there's no chance of two playing simultaneously.
hope this helps.