[Audio] Use MP3 format instead of OGG when using IE browsers

This commit is contained in:
emeric
2015-01-10 18:56:13 +01:00
parent e89b08fc39
commit fe5b010b84
8 changed files with 33 additions and 16 deletions
+12 -1
View File
@@ -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);
+15 -2
View File
@@ -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
+3
View File
@@ -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);
@@ -58,6 +58,7 @@ AvConvTranscodeStreamResource::handleRequest(const Wt::Http::Request& request,
LMS_LOG(MOD_UI, SEV_DEBUG) << "Launching transcoder";
transcoder = std::make_shared<Transcode::AvConvTranscoder>( _parameters);
LMS_LOG(MOD_UI, SEV_DEBUG) << "Mime type set to '" << _parameters.getOutputFormat().getMimeType() << "'";
response.setMimeType(_parameters.getOutputFormat().getMimeType());
}