Git Product home page Git Product logo

aacplayer-android's Introduction

Freeware Advanced Audio (AAC) Player for Android
http://www.spoledge.com

The source code can be obtained at http://code.google.com/p/aacplayer-android/

This is a port of the following open source libraries to Android platform.
    * FAAD2 (Freeware Advanced Audio (AAC) Decoder including SBR decoding)
    * FFmpeg library (AAC and WMA decoders, ASF demuxer)
    * OpenCORE aacdec library
    * libmms library (MMS protocol)


COPYRIGHTS
==========

For this software the following license applies:

******************************************************************************
** AACPlayer - Freeware Advanced Audio (AAC) Player for Android
** Copyright (C) 2011 Spolecne s.r.o., http://www.spoledge.com
**  
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 3 of the License, or
** (at your option) any later version.
** 
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
** GNU General Public License for more details.
** 
** You should have received a copy of the GNU General Public License
** along with this program. If not, see <http://www.gnu.org/licenses/>.
******************************************************************************

NOTE-FAAD2:
    This program uses FAAD2 library to decode AAC streams.
    FAAD2 library is licensed under the terms of GPLv2.
    For more information about FAAD2, please visit http://www.audiocoding.com/


NOTE-FFmpeg:
    This software uses libraries from the FFmpeg project under the LGPLv2.1.
    As the FFmpeg source code was modified (see the file ffmpeg-0.6.1.patch),
    the GPL license s applied to the modified FFmpeg source code.
    For more information about FFmpeg, please visit http://ffmpeg.org/


NOTE-OpenCORE:
    This software uses libraries from the OpenCORE project under the Apache
    License, Version 2.0. The library can be used as is without patching
    if it is compiled separately (see below).
    If you want to compile all libraries together - namely OpenCORE + FAAD2,
    then due to a linking issue you have to patch the OpenCORE lib
    (see the file jni/opencore-aacdec.patch). The patch itself as well
    as the final patched files are licensed under the Apache License,
    Version 2 (see jni/opencore-aacdec/Apache-LICENSE-2.0.txt).
    For more information about OpenCORE aacdec, please visit
    http://code.google.com/p/opencore-aacdec/


NOTE-MMS:
    This program uses "libmms" library to open MMS streams.
    MMS library is licensed under the terms of GPL.
    For more information about libmms, please visit
    http://sourceforge.net/projects/libmms/


!!! PLEASE NOTE !!!

that the use of this software may require the payment of
patent royalties. You need to consider this issue before you start
building derivative works. We are not warranting or indemnifying you in
any way for patent royalities! YOU ARE SOLELY RESPONSIBLE FOR YOUR OWN
ACTIONS!

For more information about the Microsoft ASF patents, please visit
http://en.wikipedia.org/wiki/Advanced_Systems_Format


INSTALLING
==========

Requirements:
    - Android SDK - at least platform 3 (Android 1.5)
    - Android NDK - r4

Preparing FFmpeg sources:
-------------------------

NOTE: Only when build from SVN. You can skip this if downloaded as a zip.
    The zipped version already contains the patched FFmpeg source code.
    Also you do not need to do this if you plan to not compile this particular
    library (see below).

    0) download FFmpeg 0.6.1 sources and extract it to a temporary directory <FFMPEG>
        You can download the sources from the "Downloads" tab:
            http://code.google.com/p/aacplayer-android/downloads/list

    1) copy FFmpeg's directories libavcodec, libavformat and libavutil to jni/ffmpeg:
        cp -R <FFMPEG>/libavcodec jni/ffmpeg
        cp -R <FFMPEG>/libavformat jni/ffmpeg
        cp -R <FFMPEG>/libavutil jni/ffmpeg

    2) Apply patch:
        patch -p0  < ffmpeg-0.6.1.patch


Preparing OpenCORE sources:
-------------------------

NOTE: Only when build from SVN. You can skip this if downloaded as a zip.
    The zipped version already contains the patched OpenCORE source code.
    Also you do not need to do this if you plan to not compile this particular
    library (see below).

    0) checkout OpenCORE aacdec sources and extract it to a temporary directory <OPENCORE>
        You can also download the sources from the "Downloads" tab:
            http://code.google.com/p/aacplayer-android/downloads/list

    1) copy OpenCORE's directories src, include and oscl to jni/opencore-aacdec:
        cp -R <OPENCORE>/src jni/opencore-aacdec
        cp -R <OPENCORE>/include jni/opencore-aacdec
        cp -R <OPENCORE>/oscl jni/opencore-aacdec

    2) Go to directory "jni" and apply patch:
        cd jni
        patch -Np0 < opencore-aacdec.patch


Compiling:
----------

    1) copy sample.local.properties to local.properties and edit local.properties:
        (path to Android SDK)

    2) copy sample.ant.properties to .ant.properties and edit .ant.properties:
        - path to Android NDK
        - list of AAC decoders to be compiled
            - you can choose one of FAAD2, FFmpeg or OpenCORE decoders
                or you can choose two or all of them - follow the instructions
                in the properties file
                NOTE: if you disable a particular decoder, then you do not
                    need its source codes, but also you cannot use at runtime !

    3) run ant

    4) install the APK on the emulator or a device:
        adb install bin/AACPlayer-debug.apk

Note:
    The makefile scripts were tested on linux platform and there is 
    a possibility that it won't work on windows / macosx.


RUNNING
=======

There are these options of playing AAC files:

    1) playing using the FAAD2 decoder native library
            + should work on all 1.5+ platforms
            - slow on emulator
            - patent license is needed

    2) playing using the FFmpeg decoder native library
            + should work on all 1.5+ platforms
            - slow on emulator
            - patent license is needed

    3) playing using the OpenCORE decoder native library
            + fast on all types of devices - even those not having FPU
            + should work on all 1.5+ platforms
            + works on emulator
            - patent license is needed

    /* currenlty not shown in the menu:
    4) playing using an internal AAC decoder (HTC Desire) by splitting the
        stream into small file chunks (having the ".aac" suffix)
            - only some devices support this
            - does not work on emulator
            - the playing is not smooth
    */

aacplayer-android's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.