ngCordova plugin for audio player
Bug:

You have a bug in the following line:


AudioPlugin.seekChapter(contentId, partIndex, chapterIndex function(response) {



You're missing a comma after chapterIndex.



Structure:

So, as init and playAudio follow the same style, as well as getCurrentChapter and getCurrentPosition following the same style, so you can substitute those out. Additionally, the resolve and reject functions can be taken out, leaving:

angular.module('ngCordova.plugins.audioPlugin', [])
.factory('$audioPlugin', ['$q', function($q) {
    function resolve(response){ return $q.defer.resolve(response).promise; }
    function error(error){ return $q.defer().reject(error).promise; }
    function generic(audioPluginMethod, parameter){
        if (parameter){
            return AudioPlugin[audioPluginMethod](parameter, resolve, error);
        }
        return AudioPlugin[audioPluginMethod](resolve, error);
    }
    return {
        init: generic('init', sessionKey),
        playAudio: generic('playAudio', contentId),
        getCurrentPosition: generic('getCurrentPosition'),
        getCurrentChapter: generic('getCurrentChapter'),
        seekChapter: function(contentId, partIndex, chapterIndex) {
            AudioPlugin.seekChapter(contentId, partIndex, chapterIndex, resolve, error);
        }
    }
}]);