[Audio] Use MP3 format instead of OGG when using IE browsers
This commit is contained in:
+12
-1
@@ -502,7 +502,18 @@ Audio::playTrack(boost::filesystem::path p)
|
||||
|
||||
Transcode::InputMediaFile inputFile(p);
|
||||
|
||||
Transcode::Parameters parameters(inputFile, Transcode::Format::get(Transcode::Format::OGA));
|
||||
// Determine the output format using the encoding of the player
|
||||
Transcode::Format::Encoding encoding;
|
||||
switch(AudioMediaPlayer::getEncoding())
|
||||
{
|
||||
case Wt::WMediaPlayer::MP3: encoding = Transcode::Format::MP3; break;
|
||||
case Wt::WMediaPlayer::M4A: encoding = Transcode::Format::M4A; break;
|
||||
case Wt::WMediaPlayer::OGA: encoding = Transcode::Format::OGA; break;
|
||||
default:
|
||||
encoding = Transcode::Format::MP3;
|
||||
}
|
||||
|
||||
Transcode::Parameters parameters(inputFile, Transcode::Format::get(encoding));
|
||||
|
||||
parameters.setBitrate(Transcode::Stream::Audio, bitrate);
|
||||
|
||||
|
||||
@@ -23,11 +23,24 @@
|
||||
#include <Wt/WTemplate>
|
||||
#include <Wt/WHBoxLayout>
|
||||
#include <Wt/WVBoxLayout>
|
||||
#include <Wt/WApplication>
|
||||
#include <Wt/WEnvironment>
|
||||
|
||||
#include "AudioMediaPlayer.hpp"
|
||||
|
||||
namespace UserInterface {
|
||||
|
||||
Wt::WMediaPlayer::Encoding
|
||||
AudioMediaPlayer::getEncoding()
|
||||
{
|
||||
const Wt::WEnvironment& env = Wt::WApplication::instance()->environment();
|
||||
|
||||
if (env.agentIsIE())
|
||||
return Wt::WMediaPlayer::MP3;
|
||||
else
|
||||
return Wt::WMediaPlayer::OGA;
|
||||
}
|
||||
|
||||
AudioMediaPlayer::AudioMediaPlayer( Wt::WContainerWidget *parent)
|
||||
: Wt::WContainerWidget(parent),
|
||||
_mediaResource(nullptr)
|
||||
@@ -98,7 +111,7 @@ AudioMediaPlayer::AudioMediaPlayer( Wt::WContainerWidget *parent)
|
||||
controlsLayout->addWidget(shuffle);
|
||||
|
||||
_mediaPlayer = new Wt::WMediaPlayer( Wt::WMediaPlayer::Audio, btnContainer );
|
||||
_mediaPlayer->addSource( Wt::WMediaPlayer::OGA, "" );
|
||||
_mediaPlayer->addSource( getEncoding(), "" );
|
||||
_mediaPlayer->ended().connect(this, &AudioMediaPlayer::handleTrackEnded);
|
||||
|
||||
_mediaPlayer->setControlsWidget( 0 );
|
||||
@@ -142,7 +155,7 @@ AudioMediaPlayer::loadPlayer(void)
|
||||
_mediaResource = new AvConvTranscodeStreamResource( *_currentParameters, this );
|
||||
_mediaInternalLink.setResource( _mediaResource );
|
||||
|
||||
_mediaPlayer->addSource( Wt::WMediaPlayer::OGA, _mediaInternalLink );
|
||||
_mediaPlayer->addSource( getEncoding(), _mediaInternalLink );
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -38,6 +38,9 @@ class AudioMediaPlayer : public Wt::WContainerWidget
|
||||
{
|
||||
public:
|
||||
|
||||
// Encoding is set based on environment
|
||||
static Wt::WMediaPlayer::Encoding getEncoding();
|
||||
|
||||
AudioMediaPlayer( Wt::WContainerWidget *parent = 0);
|
||||
|
||||
void load(const Transcode::Parameters& parameters);
|
||||
|
||||
Reference in New Issue
Block a user