Inline Audio recorder that works on all browsers - safari

I need to integrate an inline audio recorder for a web app and went through following -
MediaRecorder
Recorder.js
Video.js
I tested the above for Chrome, Firefox and Safari. None of the above solutions worked for Safari (version 12.1.1).
I understand that Safari has been kind of late to the game but I also expected a polyfill to work.
Could someone suggest the best way out here?

The VMSG solution described in a medium blog article just worked on all browsers including safari (both mobile and desktop)

Related

mediaRecorder : what mime type to use to make it run on Safari, Chrome and Firefox?

I am trying to use mediaRecorder API and make it run on maximum of browsers
video/webm;codecs=vp8,opus : that works fine on chrome and Firefox.. but not on Safari
video/mp4;codecs:h264 : works on Safari and Chrome.. but not on Firefox
It looks like Safari is now able to play webm.
What would be the mime type to use to make it run on both 3 browsers ?
I've been attempting the same thing and it is painful to say the least.
I'm able to use MediaRecorder to record video across Chrome, Firefox, Edge, and Safari. BUT the resulting videos do not playback on all browsers.
Safari - records in mp4 and mp4 will playback on all browsers
Chrome & Edge - I'm recording with mimeType: "video/webm;codecs=vp9", which will playback on Chrome, Firefox, and Edge, but not Safari.
Firefox - I'm using the default. It will playback on Chrome, Firefox, and Edge, but not Safari.
Supposedly Safari will playback webm with macOS Big Sur 11.3. I need to upgrade to test this.
Unfortunately webm is still not supported by iOS, so I'm looking into the Cloudconvert API to convert webm videos to mp4 before storing in S3.
Other suggestions welcome.
You'll need to use the MediaRecorder.isMediaTypeSupported API to find out what the browser you are using supports. See this open PR for details.
That does not help with playback however.
You've stumbled into an electropolitical food fight.
Sad to say, there's no commonality of codecs between browsers. You won't be able to find a common codec. Apple (Safari) is firmly in the H.264 / AAC world, the world of MP4.
Chrome, but not open-source Chromium, supports H.264 (which carries a patent burden). The fully open source Chromium browser does not. Firefox, via an automatically installed plugin from OpenH264.org, does, but it only supports H.264's constrained baseline version, not the fancier versions. Use MIME type video/webm; codecs="avc1.42E01F" and you'll be fine in Firefox and Chrome.
Microsoft new Edge supports the same stuff as Chrome.
WebRTC is rigged to allow endpoints to negotiate codecs with each other. In my opinion this is a kludgey way to patch this electropolitical squabble.
This is not a good situation. But it's Q1CY2021 reality.
as a simple answer that I found since it's not simply out there. Use a library like below to record in mp3. It's not supported by browser MediaRecorder natively, but libraries make it easy to encode to mp3
and then you have a blob or file that can be played in any browser and even mobile devices like ios
https://github.com/closeio/mic-recorder-to-mp3

How to Capture Live Stream from camera and watch live or save for later viewing?

I am trying to make an online examination portal. When students start the exam, their webcam will start automatically and record the stream live and store in the server. Invigilators will either watch the students live or they can watch the saved live streams later.
I researched about this and found WebRTC as a possible solution along with a gateway server like Kurento. But later found out that WebRTC is not supported in Safari, which is a setback! My application should run successfully in web portal in any modern browsers which includes safari and also in android or iphone.
So can anyone suggest a possible solution to my problem? Which technology should I use that can support all browsers and OS?
Also, it would be helpful if you can provide links to good documentation or tutorials.
Note from the future (2020): This answer really isn't accurate anymore.
WebRTC is one problem... capture from the camera with getUserMedia is another. Safari doesn't support either.
There is no video capture API in Safari currently. The only thing you can do is make a native app for iOS.
Worse yet, because of Apple's restrictive policies, alternative browsers, such as Chrome, are crippled on iOS as they aren't allowed to use their own browser engines.
Use standards based technologies like getUserMedia and WebRTC for your primary web-based application. If you decide that the economics of your situation enable it, you can make an iOS app to work alongside until Apple decides to participate in modern browser standards like everyone else.
You can use Mediadevices.getUserMedia (https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia) to capture webcam stream on browser (chrome and firefox).
To play with webcam stream on safari, you would have to use a pollyfill - https://github.com/Temasys/AdapterJS
To record the video/audio stream, you can make use of Media recorder api https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder (Note : recording stream is still a challenge in Safari as there is no support/pollyfill. However, it works perfectly on Chrome and Firefox latest versions).
Helpful demonstrations :
https://webrtc.github.io/samples/
https://mozdevs.github.io/MediaRecorder-examples/index.html
https://codepen.io/collection/XjkNbN/
https://hacks.mozilla.org/2016/04/record-almost-everything-in-the-browser-with-mediarecorder/

Cannot view video from publisher using Chrome to iPad with OpenTok

I'm currently trying to set up a connection between my web client and my iOS app, but for some reason my iOS client only sees a black box when using Chrome (version 33). I can see the video just fine if I use Firefox (both in my app and when I put the browsers side-by-side, they can see each other).
This doesn't appear to be a documented known issue with the JavaScript SDK, and I can't see any recent discussion about this on the forums (last post was mine).
The iOS sample can be located here (samples/OpenTokHelloWorld) with the browser page in samples/OpenTokHelloWorld/browser_demo.html
I suggest cd'ing into samples/OpenTokHelloWorld and running python -m SimpleHTTPServer, as it can't be run from a file:/// path.
Here is what my iPad sees:
Chrome:
Firefox:
And Chrome/Firefox (respectively), both publishing video from the same camera
Edit: after testing on other machines, it may be something specific to my environment even though none of my extensions run in Incognito and I don't have any custom plugins installed.
It looks like the OpenTok mobile SDKs with the specific webcam I was using has issues. On Android the video stream will display for a brief moment then segfault, and on iOS there will be no video at all.
I have tested this many times and could not reproduce what you are seeing in your chrome.
Without seeing any console errors or iOS logs the best suggestion is to try clearing your cache, or maybe restarting your computer (longshot)

Best desktop browser to test Sencha Touch application?

For testing without an iPhone/Android phone, which desktop browser works best with Sencha Touch? I tried Chrome and Safari, which work fairly well, but both seem to have little issues.
Firefox and IE apparently don't work at all with Sencha Touch. Is there a secret weapon, like a port of a mobile browser, available?
There's a Chrome extension called Ripple that's pretty good, but most things can be tested quite productively in Chrome. Set Ext.is.Phone = true; at the beginning of your script when you need to test the phone UI.
You should be using the iPhone/iPad hardware simulator on a mac, or the Android simulator if you're on Windows. Desktop browsers will get you there - particularly desktop safari -- although there are enough differences that you should really use one of the simulators
A direct link to one ipad simulator online is: http://ipadpeek.com/
On Windows, Google Chrome is my favorite browser. When I'm done developing a section of the app I do test it on my real device, an HTC desire (Android). As expected, the real device is WAY slower than desktop browser, specially notable on animations, e.g sliding tabs and carousels.
I would say Google chrome is the best browser till date.... and its an ideal browser for sencha touch applications to run, since it contains webkit..
Also you can use Titanium (you can download it here) which has iphone/iPad simulater built in but for that you need a Mac and you also have to download ios sdk.
Working on these simulators is an awesome experience.

How does Google Chrome affect product owners developing web apps?

If my app has been tested in Firefox 3, Safari 3 & IE 7 will it need additional testing for Chrome?
If there are areas that'll need further testing -- then are there any online guides I could share with my designers & developers?
At what point will Chrome be considered to have sufficient market share to be treated as a mainstream browser?
If it's working fine on Safari, it will probably work on Chrome as well. The only difference is the JavaScript engine, but I've yet to see a real world example of some legitim JavaScript code not working on Chrome.
Personally I test my stuff with Chrome because I use Chrome intensively for development. It is good practice to test your pages with at least one WebKit (or KHTML) based browser though.
Chrome uses the WebKit rendering engine, which is also used in Safari and some other small browsers. Overall with both Chrome and Safari gaining in market share it is definately a browser to test (you only really need to test one). It's very standards compliant and is constantly having updates to keep up with new CSS drafts.
Webkits main Site - http://webkit.org/
Browser Market Share
http://www.w3schools.com/browsers/browsers_stats.asp and http://en.wikipedia.org/wiki/Usage_share_of_web_browsers are good places to look for market share of browsers although they show very different responses on Chrome.
According to Wikipedia roughly 7.96% of poeple are using WebKit based browsers however W3C shows that in November only 5.8% did.
Theoretically, because Google Chrome uses the same engine as Safari (WebKit), you've already tested. But Google has made several changes to the engine, including rewriting the JavaScript interpreter completely. Additional testing never hurts and it wouldn't take long to confirm that everything works as expected.
Now that GMail suggests people switch from IE to Firefox and Chrome, I'm guessing we'll see IE lose more and more market share to those browsers. Chrome doesn't have much of a user-base now, but I can imagine that will change.
Better test on it. I've already run across sites that work in Safari but don't in Chrome. I have IE8b2, FF3, Safari, and Chrome all installed on my machine. Not for testing reasons, but because of the websites that I visit. Takes all 4 of those to get all the websites to show right...
if you don't have PNG24 with opacity changed from CSS, all things should be fine.
However, i always try in all modern browsers (ie6/7, ff2/3, opera 9.x, safari and chrome).
According to Wikipedia, Chrome has a 0.78% usage rate right now. Depending on your audience the actual number of users might be low, and not really require testing.
Chrome uses the WebKit engine, which as I recall is the same engine used by Safari. So in theory, if your site works for Safari it should work for Chrome, as well.
Refer to this Google's Chrome page for details.
Chrome already got a small percentage of the community. However as far as I know, Chrome follows the standards from W3C and all websites that work in IE6, IE7 and FF2 / 3 has worked perfectly for me.
So by that said, i think you should already be testing your applications in chrome as well.
Always test in these browsers nowdays:
Internet Explorer 6, 7, 8
Firefox 2, 3
Chrome
Opera
Safari
Lynx