Hi Grant,
The Shaka demo app populates the language settings using "navigator.language" in
demo/main.js:
var language = navigator.language || 'en-us';
document.getElementById('preferredAudioLanguage').value = language;
document.getElementById('preferredTextLanguage').value = language;
config.preferredAudioLanguage =
document.getElementById('preferredAudioLanguage').value;
config.preferredTextLanguage =
document.getElementById('preferredTextLanguage').value;
player.configure(config);
The player will choose the audio track based on these settings. Shaka understands both two- and three-letter language codes, so even if your preference is set to "ara" and your manifest says "ar" (or vice versa), it will still match.
So in your case, since English is playing in the VM, I would guess one of these is happening:
1. Your browser is not correctly reporting the OS's configured language
(check the value of navigator.language in the JS console)
2. Your application is not using the browser language to configure the player
(check player.getConfiguration().preferredAudioLanguage in the JS console)
Let me know how this turns out.
Thanks,
Joey