Error unknown error event from player

Hello, do you have any example of a player using a playready+smoothstreaming stream? Best regards.

@jorgitoml

Hello,
do you have any example of a player using a playready+smoothstreaming stream?
Best regards.

@SoCoxx

Just use Player.play(«http://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest»);

The main player body (buttons, progress bar, ellapsed/total time) is on you.

There are events called by Player:

  • durationchange (after player reads total lengs of the stream),
  • timeupdate (every time the actual playback position changes),
  • end (stream playback ends),
  • play, stop, pause, seek, playbackspeed, …

To access them, just call Player.on(‘event’, function(param) { … do something });

And there are methods:

  • already mentioned play()
  • stop()
  • pause()
  • playbackSpeed()
  • etc…

Please check the js/modules/player.js for all methods and events. Remember, that such stream works only on TV (and maybe on emulator). It will not work in standard Chrome, as it has no PlayReady support.

@SoCoxx

And one more hint — if you hear only sound and no video is visible, check if you haven’t set body tag or some other element with background-color. The player DOM element is handled by TV and anything from application in DOM is above it. This mean it can be accidentally obscured by scene content. Also this must be handled by application — when starting player, all obscuring elements must be set to invisible, or backgrounds set to transparent.

@stenlik

Just a general comment: SmoothStreaming players on almost all TVs models as well as game consoles are on a quite good level. However since we are usually releasing applications for all 2012+ TV lines and it means support for large number of various TV models, we have faced on many project issues related to the video quality switching, support for multiple audio tracks, handling subtitles, etc. In such a case the best you can do is contacting TV vendors as usually it is a known player issue, which might be solved with FW update or you need to polish the format of the manifest file.

@jorgitoml

Tanks for the info.
Can you tell me the procedure to set the DRM url and the custom data?
Thanks again.

@SoCoxx

Preparation

// add DRM object to the DOM. You can place it in html or create id dynamically
var drm = '<object id="drmplugin" type="application/oipfDrmAgent" style="visibility:hidden" width="0" height="0"></object>';
$('body').append(drm);
var drmplugin = document.getElementById('drmplugin');

if (drmplugin) {
    drmplugin.onDRMMessageResult = HandleOnDRMMessageResult;
    drmplugin.onDRMRightsError = HandleOnDRMRightsError;
} else {
    console.log('DRM Plugin initialization failed!');
    return false;
}

Sending user data

var userData = {
    "foo": "bar"
};

// send DRM message to DRM Agent with userData
var xmlSetCustomData = '<?xml version="1.0" encoding="utf-8"?>' +
'<PlayReadyInitiator xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/">' +
'<SetCustomData>' +
'<CustomData>'+window.btoa(JSON.stringify(userData))+'</CustomData>' +
'</SetCustomData>' +
'</PlayReadyInitiator>';
drmplugin.sendDRMMessage('application/vnd.ms-playready.initiator+xml', xmlSetCustomData, 'urn:dvb:casystemid:19219');

Handling response or error

function HandleOnDRMMessageResult(msgID, resultMsg, resultCode) {
    if (resultCode == 0) {
        // OK result received from PR server, we have license and we can start playback
        Player.play("url");
    }
}

function HandleOnDRMRightsError() {
    console.log("HandleOnDRMRightsError");
}

@SoCoxx

The user data format is defined by the DRM service. Mostly it is a stringified JSON with user session, asset ID, … converted to base64, but it might be a base64 string that comes from some API, or static string like on https://playready.directtaps.net/pr/doc/customrights/

@jorgitoml

And if I need to change the license server URL?

In Samsung Orsay devices I use:
this.plugin.SetPlayerProperty(4, license_url, license_url.length);

In Samsung Tizen:
drmParam = {
LicenseServer: licenseServer,
DeleteLicenseAfterUse: true,
CustomData: customData
};
webapis.avplay.setDrm(«PLAYREADY», «SetProperties», JSON.stringify(drmParam));

In LG Netcast:
sendLicenseRequest: function(global_licenseURL, b64_custom_data){

    var msgType = "application/vnd.ms-playready.initiator+xml"; 
    var xmlLicenseAcquisition = '<?xml version="1.0" encoding="utf-8"?>' + 
                '<PlayReadyInitiator xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/">' + 
                '<LicenseServerUriOverride>' +
                '<LA_URL>'+global_licenseURL+'</LA_URL>' + 
                '</LicenseServerUriOverride>' +
                '<SetCustomData>' +
                '<CustomData>'+b64_custom_data+'</CustomData>' + 
                '</SetCustomData>' +
                '</PlayReadyInitiator>';
    var DRMSysID = "urn:dvb:casystemid:19219";
    var oipfDrm = document.getElementById('oipfDrm'); 
    oipfDrm.onDRMMessageResult = videoPlayer_live.HandleOnDRMMessageResult; 
    oipfDrm.sendDRMMessage(msgType, xmlLicenseAcquisition, DRMSysID); 
    console.log("after sendDRMMessage");
},

ETC

Regards.

@SoCoxx

@jorgitoml

Yes, they work fine when I develop apps using each TV manufacturer SDK.
Using your SDK I don’t know how to change the license URL.

PS: The above examples are using the manufacturers SDK, not yours.

@jorgitoml

One more thing,
Your example code is like the code I usually use in LG Netcast devices.
It will work in all other manufacturer devices? (LG, Samsung, Philips, Sony, etc)

@SoCoxx

Yes, my code is for LG NetCast, but this works also on devices like Toshiba and Vestel/Gogen. Sadly, I have no experiences with PlayReady on Samsung devices, but hope one of my colleagues will answer.

If you need to send CustomData and LA_URL, you have to send it one by one:

// send DRM message to DRM Agent with userData
var xmlSetCustomData = '<?xml version="1.0" encoding="utf-8"?>' + 
'<PlayReadyInitiator xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/">' + 
'<SetCustomData>' + 
'<CustomData>'+window.btoa(JSON.stringify(userData))+'</CustomData>' + 
'</SetCustomData>' + 
'</PlayReadyInitiator>';
this.drmplugin.sendDRMMessage('application/vnd.ms-playready.initiator+xml', xmlSetCustomData, 'urn:dvb:casystemid:19219');

and

// send DRM message to DRM Agent with LA_URL
var xmlLicenseServerUriOverride = '<?xml version="1.0" encoding="utf-8"?>' +
'<PlayReadyInitiator xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/">' + 
'<LicenseServerUriOverride>'+
'<LA_URL>'+drmUrl+'</LA_URL>'+
'</LicenseServerUriOverride>'+
'</PlayReadyInitiator>';
this.drmplugin.sendDRMMessage('application/vnd.ms-playready.initiator+xml', xmlLicenseServerUriOverride, 'urn:dvb:casystemid:19219');

Then, you must then wait for 2 OK results in
HandleOnDRMMessageResult: function(msgID, resultMsg, resultCode) { ... }

@jorgitoml

Tx SoCoxx, let’s wait to your colleagues.

@jorgitoml

I’m getting this error playing a Smootstreaming stream on Samsung TIzen:

PLAYER: PLAY developer.js:175
[Device_Tizen_Player] Event type: PLAYER_MSG_BITRATE_CHANGE developer.js:175
[Device_Tizen_Player] Error UNKNOWN_ERROR_EVENT_FROM_PLAYER, data: undefined developer.js:175
PLAYER: ERROR developer.js:175
Player ERROR 1: UNKNOWN_ERROR_EVENT_FROM_PLAYER developer.js:175
Player ERROR 2: undefined developer.js:175
Player ERROR 3: undefined

Same stream works fine in Samsung Orsay.
Any clue?

@jorgitoml

Same stream works fine using the native Samsung Tizen SDK too.

@stenlik

@jorgitoml We do not have publicly available example.

@jorgitoml

OK, and any idea about the player error?

PLAYER: PLAY developer.js:175
[Device_Tizen_Player] Event type: PLAYER_MSG_BITRATE_CHANGE developer.js:175
Player Info >>>
URL: http://XXXXXXXXXXX/LB-SVliveTr1/smil:119893_h.ism/Manifest
Duration: 0
Current Bandwidth: 5771486
Audio tracks: []
developer.js:185
[Device_Tizen_Player] Error UNKNOWN_ERROR_EVENT_FROM_PLAYER, data: undefined developer.js:175
PLAYER: ERROR developer.js:175
Player ERROR 1: UNKNOWN_ERROR_EVENT_FROM_PLAYER developer.js:175
Player ERROR 2: undefined developer.js:175
Player ERROR 3: undefined

@stenlik

It says «UNKNOWN_ERROR_EVENT_FROM_PLAYER», so cannot even guess… The best what you can do is making the simple test application and sending it to us or to Samsung. If we find time we could check it.

I also suggest testing first the streams without DRM and once those will work start with the encryption.

@jorgitoml

Solved.
There was a problem with the Tizen privileges.
Thanks for all.

@damianDanylko

Hi jorgitoml,

I have similar issue to you, do you remember what kind of Tizen privileges were enabled by you?

Regards,
Damian

@jorgitoml

Hope it helps:

<tizen:privilege name="http://tizen.org/privilege/application.launch"/> <tizen:privilege name="http://developer.samsung.com/privilege/productinfo"/> <tizen:privilege name="http://developer.samsung.com/privilege/widgetdata"/> <tizen:privilege name="http://developer.samsung.com/privilege/network.public"/> <tizen:privilege name="http://tizen.org/privilege/tv.inputdevice"/> <tizen:privilege name="http://tizen.org/privilege/application.info"/> <tizen:privilege name="http://tizen.org/privilege/package.info"/> <tizen:privilege name="http://developer.samsung.com/privilege/drminfo"/> <tizen:privilege name="http://developer.samsung.com/privilege/drmplay"/> <tizen:privilege name="http://developer.samsung.com/privilege/avplay"/>

@unreal998

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.

  • Laravel photo

    Laravel

    A PHP framework for web artisans

  • 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.

  • Visualization

    Some thing interesting about visualization, use data art

  • 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.

  • Alibaba photo

    Alibaba

    Alibaba Open Source for everyone

  • D3 photo

    D3

    Data-Driven Documents codes.

  • Tencent photo

    Tencent

    China tencent open source team.

Java Code Examples for android.media.MediaPlayer#MEDIA_ERROR_UNKNOWN

The following examples show how to use
android.media.MediaPlayer#MEDIA_ERROR_UNKNOWN .
You can vote up the ones you like or vote down the ones you don’t like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.

Example 1

@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
    AppToast.showToast("播放失败");
    Log.d(TAG, "播放失败, " + what + ", " + extra);
    switch (what) {
        case MediaPlayer.MEDIA_ERROR_IO:
            Log.d(TAG, "MEDIA_ERROR_IO");
            break;
        case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
            Log.d(TAG, "MEDIA_ERROR_SERVER_DIED");
            break;
        case MediaPlayer.MEDIA_ERROR_UNKNOWN:
            Log.d(TAG, "MEDIA_ERROR_UNKNOWN");
            break;
        case MediaPlayer.MEDIA_ERROR_TIMED_OUT:
            Log.d(TAG, "MEDIA_ERROR_TIMED_OUT");
            break;
        default:
            break;
    }
    return true;
}
 

Example 2

@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
    switch (what) {
        case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
            //Log.v("ERROR", "MEDIA ERROR NOT VALID FOR PROGRESSIVE PLAYBACK "	+ extra);
            break;
        case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
            //Log.v("ERROR", "MEDIA ERROR SERVER DIED " + extra);
            break;
        case MediaPlayer.MEDIA_ERROR_UNKNOWN:
            //Log.v("ERROR", "MEDIA ERROR UNKNOWN " + extra);
            break;
    }
    sendBroadcast(new Intent(Mode.ERROR));
    return false;
}
 

Example 3

private String errToStr(int framework_err, int impl_err) {
    String msg = null;
    if (framework_err == MediaPlayer.MEDIA_ERROR_IO) {
        msg = "IO Error";
    } else if (framework_err == MediaPlayer.MEDIA_ERROR_MALFORMED) {
        msg = "Bitstream unsupported";
    } else if (framework_err == MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK) {
        msg = "Invalid progressive playback";
    } else if (framework_err == MediaPlayer.MEDIA_ERROR_TIMED_OUT) {
        msg = "Operation time out";
    } else if (framework_err == MediaPlayer.MEDIA_ERROR_SERVER_DIED) {
        msg = "MediaPlayer died";
    } else if (framework_err == MediaPlayer.MEDIA_ERROR_UNSUPPORTED) {
        msg = "File spec is not supported in the media framework";
    } else if (framework_err == MediaPlayer.MEDIA_ERROR_UNKNOWN) {
        msg = "Unknown error";
    }
    return msg;
}
 

Example 4

@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
	switch (what) {
	case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
		//Log.v("ERROR", "MEDIA ERROR NOT VALID FOR PROGRESSIVE PLAYBACK "	+ extra);
		break;
	case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
		//Log.v("ERROR", "MEDIA ERROR SERVER DIED " + extra);
		break;
	case MediaPlayer.MEDIA_ERROR_UNKNOWN:
		//Log.v("ERROR", "MEDIA ERROR UNKNOWN " + extra);
		break;
	}
   sendBroadcast(new Intent(Mode.ERROR));
	return false;
}
 

Example 5

@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
    MediaErrorEvent evt = fireMediaError(AndroidImplementation.createMediaException(extra));
    fireMediaStateChange(State.Playing);
    fireMediaStateChange(State.Paused);
    if (!evt.isConsumed()) {
        switch (what) {
            case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
                Toast.makeText(AudioService.this,
                        "MEDIA ERROR NOT VALID FOR PROGRESSIVE PLAYBACK " + extra,
                        Toast.LENGTH_SHORT).show();
                break;
            case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
                Toast.makeText(AudioService.this, "MEDIA ERROR SERVER DIED " + extra,
                        Toast.LENGTH_SHORT).show();
                break;
            case MediaPlayer.MEDIA_ERROR_UNKNOWN:
                Toast.makeText(AudioService.this, "MEDIA ERROR UNKNOWN " + extra,
                        Toast.LENGTH_SHORT).show();
                break;
        }
    }
    return false;
}
 

Example 6

public boolean onError(MediaPlayer mp, int what, int extra) {
	StringBuilder sb = new StringBuilder();
	sb.append("Media Player Error: ");
	switch (what) {
		case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
		sb.append("Not Valid for Progressive Playback");
		break;
		case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
		sb.append("Server Died");
		break;
		case MediaPlayer.MEDIA_ERROR_UNKNOWN:
		sb.append("Unknown");
		break;
		default:
		sb.append(" Non standard (");
		sb.append(what);
		sb.append(")");
	}
	sb.append(" (" + what + ") ");
	sb.append(extra);
	Log.e(TAG, sb.toString());
	wrapItUp(RESULT_CANCELED, sb.toString());
	return true;
}
 

Example 7

public boolean onError(MediaPlayer mp, int what, int extra) {
	StringBuilder sb = new StringBuilder();
	sb.append("MediaPlayer Error: ");
	switch (what) {
		case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
		sb.append("Not Valid for Progressive Playback");
		break;
		case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
		sb.append("Server Died");
		break;
		case MediaPlayer.MEDIA_ERROR_UNKNOWN:
		sb.append("Unknown");
		break;
		default:
		sb.append(" Non standard (");
		sb.append(what);
		sb.append(")");
	}
	sb.append(" (" + what + ") ");
	sb.append(extra);
	Log.e(TAG, sb.toString());

	wrapItUp(RESULT_CANCELED, sb.toString());
	return true;
}
 

Example 8

public boolean onError(MediaPlayer mp, int framework_err, int impl_err) {
    PLog.d(TAG, "Error: " + framework_err + "," + impl_err);
    updateStatus(STATE_ERROR);
    mTargetState = STATE_ERROR;

    int eventCode = OnErrorEventListener.ERROR_EVENT_COMMON;

    switch (framework_err){
        case MediaPlayer.MEDIA_ERROR_IO:
            eventCode = OnErrorEventListener.ERROR_EVENT_IO;
            break;
        case MediaPlayer.MEDIA_ERROR_MALFORMED:
            eventCode = OnErrorEventListener.ERROR_EVENT_MALFORMED;
            break;
        case MediaPlayer.MEDIA_ERROR_TIMED_OUT:
            eventCode = OnErrorEventListener.ERROR_EVENT_TIMED_OUT;
            break;
        case MediaPlayer.MEDIA_ERROR_UNKNOWN:
            eventCode = OnErrorEventListener.ERROR_EVENT_UNKNOWN;
            break;
        case MediaPlayer.MEDIA_ERROR_UNSUPPORTED:
            eventCode = OnErrorEventListener.ERROR_EVENT_UNSUPPORTED;
            break;
        case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
            eventCode = OnErrorEventListener.ERROR_EVENT_SERVER_DIED;
            break;
        case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
            eventCode = OnErrorEventListener.ERROR_EVENT_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK;
            break;
    }

    /* If an error handler has been supplied, use it and finish. */
    Bundle bundle = BundlePool.obtain();
    submitErrorEvent(eventCode,bundle);
    return true;
}
 

Example 9

public boolean onError(MediaPlayer player, int what, int extra) {
    String errorWhat;
    switch (what) {
        case MediaPlayer.MEDIA_ERROR_UNKNOWN:
            errorWhat = "MEDIA_ERROR_UNKNOWN";
            break;
        case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
            errorWhat = "MEDIA_ERROR_SERVER_DIED";
            break;
        default:
            errorWhat = "!";
    }

    String errorExtra;
    switch (extra) {
        case MediaPlayer.MEDIA_ERROR_UNSUPPORTED:
            errorExtra = "MEDIA_ERROR_UNSUPPORTED";
            break;
        case MediaPlayer.MEDIA_ERROR_MALFORMED:
            errorExtra = "MEDIA_ERROR_MALFORMED";
            break;
        case MediaPlayer.MEDIA_ERROR_IO:
            errorExtra = "MEDIA_ERROR_IO";
            break;
        case MediaPlayer.MEDIA_ERROR_TIMED_OUT:
            errorExtra = "MEDIA_ERROR_TIMED_OUT";
            break;
        default:
            errorExtra = "!";
    }

    String msg = String.format("what = %d (%s), extra = %d (%s)",
            what, errorWhat, extra, errorExtra);

    Log.e(TAG, msg);
    notifyError(what, msg);
    return true;
}
 

Example 10

@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
    int errorType;
    switch (what) {
        case MediaPlayer.MEDIA_ERROR_UNKNOWN:
            switch (extra) {
                case MEDIA_ERROR_MALFORMED:
                    errorType = MEDIA_ERROR_DECODE;
                    break;
                case MEDIA_ERROR_TIMED_OUT:
                    errorType = MEDIA_ERROR_INVALID_CODE;
                    break;
                default:
                    errorType = MEDIA_ERROR_FORMAT;
                    break;
            }
            break;
        case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
            errorType = MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK;
            break;
        case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
            errorType = MEDIA_ERROR_SERVER_DIED;
            break;
        default:
            // There are some undocumented error codes for android media player.
            // For example, when surfaceTexture got deleted before we setVideoSuface
            // to NULL, mediaplayer will report error -38. These errors should be ignored
            // and not be treated as an error to webkit.
            errorType = MEDIA_ERROR_INVALID_CODE;
            break;
    }
    nativeOnMediaError(mNativeMediaPlayerListener, errorType);
    return true;
}
 

Example 11

@Override
public boolean onError(MediaPlayer mp, int whatError, int extra) {
    Log.d(LOGTAG, "onError Called" + whatError + "  " + extra);
    if (whatError == MediaPlayer.MEDIA_ERROR_SERVER_DIED) {
        Log.v(LOGTAG, "Media Error, Server Died " + extra);
    } else if (whatError == MediaPlayer.MEDIA_ERROR_UNKNOWN) {
        Log.v(LOGTAG, "Media Error, Error Unknown " + extra);
    }

    return false;
}
 

Example 12

@Override
public boolean onError(MediaPlayer mediaPlayer, int what, int extra) {
    switch (what) {
        case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
            Toast.makeText(this, "Error not valid playback", Toast.LENGTH_SHORT).show();
            break;
        case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
            Toast.makeText(this, "Error server died", Toast.LENGTH_SHORT).show();
            break;
        case MediaPlayer.MEDIA_ERROR_UNKNOWN:
            Toast.makeText(this, "Error unknown", Toast.LENGTH_SHORT).show();
            break;
    }
    return false;
}
 

Example 13

@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
    int errorType;
    switch (what) {
        case MediaPlayer.MEDIA_ERROR_UNKNOWN:
            switch (extra) {
                case MEDIA_ERROR_MALFORMED:
                    errorType = MEDIA_ERROR_DECODE;
                    break;
                case MEDIA_ERROR_TIMED_OUT:
                    errorType = MEDIA_ERROR_INVALID_CODE;
                    break;
                default:
                    errorType = MEDIA_ERROR_FORMAT;
                    break;
            }
            break;
        case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
            errorType = MEDIA_ERROR_DECODE;
            break;
        case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
            errorType = MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK;
            break;
        default:
            // There are some undocumented error codes for android media player.
            // For example, when surfaceTexture got deleted before we setVideoSuface
            // to NULL, mediaplayer will report error -38. These errors should be ignored
            // and not be treated as an error to webkit.
            errorType = MEDIA_ERROR_INVALID_CODE;
            break;
    }
    nativeOnMediaError(mNativeMediaPlayerListener, errorType);
    return true;
}
 

Example 14

@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
    int errorType;
    switch (what) {
        case MediaPlayer.MEDIA_ERROR_UNKNOWN:
            switch (extra) {
                case MEDIA_ERROR_MALFORMED:
                    errorType = MEDIA_ERROR_DECODE;
                    break;
                case MEDIA_ERROR_TIMED_OUT:
                    errorType = MEDIA_ERROR_INVALID_CODE;
                    break;
                default:
                    errorType = MEDIA_ERROR_FORMAT;
                    break;
            }
            break;
        case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
            errorType = MEDIA_ERROR_DECODE;
            break;
        case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
            errorType = MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK;
            break;
        default:
            // There are some undocumented error codes for android media player.
            // For example, when surfaceTexture got deleted before we setVideoSuface
            // to NULL, mediaplayer will report error -38. These errors should be ignored
            // and not be treated as an error to webkit.
            errorType = MEDIA_ERROR_INVALID_CODE;
            break;
    }
    nativeOnMediaError(mNativeMediaPlayerListener, errorType);
    return true;
}
 

Unrecoverable playback error unknown error 80070001

Unrecoverable playback error: Timeout

Описание: У вас проблемы с foobar2000 и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть. Подробно описывайте проблему. Не забывайте указать версию плеера, название сборки, по возможности добавить скриншоты проблемы.

str » 22.09.2013, 01:25

некоторое время назад начала появляться такая проблема: при первом старте фубара после загрузки винды плеер отказывается воспроизводить музыку и выдает такую информацию:
Код: Выделить всё UI Hacks: DLL-hijacking failed
UI Hacks: hooks status 0x028008
Watching: D:MUzzzLo
WSH Panel Mod (<729C95B2-70FF-421B-B5B6-7F5DE5A9450C>): initialized in 465 ms
Startup time : 0:07.692272
Album List refreshed in: 0:00.139851
Opening track for playback: «D:Video_bit_torrentThe KLF1991 The White Room1 — What Time Is Love (LP Mix).mp3»
Audioscrobbler: Handshake successful.
WASAPIHost64.exe unresponsive — terminating
Unrecoverable playback error: Timeout
Opening track for playback: «D:Video_bit_torrentThe KLF1991 The White Room2 — Make It Rain.mp3»
Unrecoverable playback error: Device in use
решается проблема запуском любого другого приложения со звуком (LA, игры).

хочется узнать, это проблема винды или плеера?

natrixx » 22.09.2013, 08:17

MrGrey » 22.09.2013, 20:51

Бывало такое именно сразу после включения/перезагрузки. бывало крайне редко, я не разбирался

Если закрыть фубар и открыть, то ошибки тоже не должно быть. И карта явно реалтек

str » 23.09.2013, 01:02

MrGrey » 24.09.2013, 12:18

str » 24.09.2013, 19:23

Проблемы с воспроизведением

Nika » 03.12.2013, 17:35

ghazan » 17.12.2013, 16:22

Yurnikos » 17.12.2013, 16:31

Источник

Как исправить неустранимую ошибку воспроизведения с помощью Foobar

Другое полезное руководство / by admin / August 05, 2021

Foobar — это бесплатный аудиоплеер. Его расширенная версия — Foobar2000, широко известная как FB2K. Это приложение представляет собой аудиоплеер, поддерживаемый ОС Windows, iOS и Android. Foobar широко используется благодаря гибким настройкам. Первоначально он был выпущен в 2002 году, но последний стабильный выпуск состоялся в последний день марта 2020 года.

Некоторые пользователи Windows сообщали о какой-то ошибке в Foobar, так как при попытке открыть файл Mp3 с помощью Foobar2000 на экране появляется «Неустранимая ошибка окупаемости». В некоторых случаях ошибка возникает с кодом ошибки 0x88780078. Некоторые решения, описанные в разделе ниже, чтобы избавиться от такого рода ошибок.

[googleplay url = ” https://play.google.com/store/apps/details? & hl = en_IN ”]

  • 1 Что вызывает неустранимую ошибку воспроизведения?
  • 2 Как исправить неисправимую ошибку воспроизведения с помощью Foobar:
    • 2.1 Отключение режима GX DSP:
    • 2.2 Средство устранения неполадок WMP:
    • 2.3 Конструктор конечных точек Windows Audio:

    Что вызывает неустранимую ошибку воспроизведения?

    Ошибка является общей причиной, подразумевающей использование Центра управления Xonar DX с Foobar. Вы можете отключить режим GX DSO, чтобы избавиться от этой распространенной проблемы. Вы также можете обратиться к нескольким решениям, чтобы устранить этот код ошибки из Foobar2000. Проблема также может быть связана с вашим устройством воспроизведения.

    Вы можете изменить аудиоформат по умолчанию, чтобы проверить решение проблемы. Вы можете рассчитывать на упомянутые решения в случае, если у вас возникнут серьезные проблемы с Foobar2000. Другой причиной является несогласованность, вызванная проигрывателем Windows Media, у которого также может быть ответ, упомянутый в процедурах ниже.

    Как исправить неисправимую ошибку воспроизведения с помощью Foobar:

    Вы сможете решить проблему, перезапустив файлы приложения или систему, но в случае проблема связана с серьезной причиной, тогда вы можете отключить режим GX DSP в качестве первого решения. подходить.

    Отключение режима GX DSP:

    Настройки в Центре управления Xonar DX являются основной причиной получения «Воспроизведение без возможности восстановления». Ошибка. »Деактивация режима GX DSP с помощью кнопки GX позволяет немедленно решить проблему. эффекты.

    Перейдите к кнопке GX в настройках GX вашего медиаплеера. Нажмите кнопку, чтобы отключить режим GX DSP и перезапустить медиаплеер Foobar. Этот процесс может устранить проблему, связанную с проигрывателем мультимедиа, как «Неустранимая ошибка воспроизведения». Проверьте правильность решения. Если проблема не заключается в постоянном удалении от медиаплеера, вы можете проверить следующую процедуру, чтобы решить проблему.

    Средство устранения неполадок WMP:

    Если первый метод не может решить проблему, средство устранения неполадок «Настройки проигрывателя Windows Media» поможет вам избавиться от этой ошибки. Этот метод устранения неполадок действителен для версии Windows ниже или уровня Windows 8. Утилита просканирует настройки проигрывателя Windows Media и автоматически восстановит зависимости. В этом процессе могут также применяться соответствующие изменения в настройках. Вам необходимо выполнить следующие простые шаги, если вы хотите устранить неполадки в настройках проигрывателя Windows Media:

    • Нажмите клавиши Windows + R, чтобы открыть диалоговое окно «Выполнить».
    • Введите «control» в текстовое поле и откройте «классический интерфейс панели управления».
    • Найдите «устранение неполадок» в меню поиска и нажмите «Enter».
    • Нажмите «Устранение неполадок».
    • Нажмите «Просмотреть все», чтобы увидеть полный список доступных средств устранения неполадок.
    • В контекстном меню выберите «Настройки проигрывателя Windows Media».
    • Перейдите и нажмите «Дополнительно», а также «установите флажок», который связан с «Применить ремонт автоматически».
    • Нажмите «Да», чтобы предоставить права администратора.
    • Нажмите «Далее», чтобы начать сканирование и дождаться завершения процесса.
    • Вы можете исправить это после завершения процесса.
    • Нажмите «Применить это исправление».

    Перезагрузите систему и проверьте, не возникла ли проблема. Вы больше не получите неисправимой ошибки воспроизведения в процессе. Если в любом случае проблема не решена окончательно, можно переходить к следующей процедуре.

    Конструктор конечных точек Windows Audio:

    Если служба зависла в подвешенном состоянии, вы можете избавиться от этой проблемы, перезапустив конструктор конечных точек Windows Audio. Это решение будет эффективно работать для версий Windows, равных или ниже Windows 8. Выполните следующие действия, чтобы перезапустить службу Windows Audio Endpoint Builder:

    • Нажмите клавиши Windows + R, чтобы открыть диалоговое окно «Выполнить».
    • Введите ’service.msc’ в текстовое поле и откройте «Экран обслуживания».
    • Перейдите к «Конструктору конечных точек Windows Audio» в контексте
    • Щелкните его правой кнопкой мыши и выберите вариант перезапуска.

    Перезапустите приложение и проверьте, нет ли проблемы. Возможно, вы не столкнулись с неисправимой ошибкой воспроизведения в приложении Foobar. Если проблема не исчезнет, ​​перейдите к следующей процедуре в последовательности.

    Аудио служба Windows:

    Вы также можете перезапустить Windows Audio Service с точки зрения устранения проблемы, если вы получаете неустранимую ошибку воспроизведения. Вы можете эффективно выполнить это с помощью командной строки с повышенными привилегиями. Следуйте инструкциям, чтобы применить это исправление:

    • Нажмите клавишу Windows + S и найдите командную строку.
    • Откройте командную строку и нажмите Ctrl + Shift + Enter, чтобы перейти в «Командную строку с повышенными привилегиями».
    • Нажмите «Да», чтобы разрешить всем пользователям.
    • Введите команду ‘net stop audiosrv’ без кавычек и нажмите «Enter».
    • Подождите, пока процесс завершится
    • Теперь введите команду ‘net start audiosrv’ без кавычек и нажмите «Enter».
    • Подождите, пока процесс завершится

    Откройте приложение Foobar и убедитесь, что вашей проблемы здесь больше нет. Если проблема все еще существует, вы можете попробовать следующее решение.

    Переустановите WMP:

    Foobar2000 полагается на встроенную интеграцию медиаплеера для многих функций. Неустранимые ошибки воспроизведения могут возникнуть в этом случае, если вы столкнулись с ошибкой в ​​проигрывателе Windows Media. В этой ситуации вам потребуется переустановка Windows Media Player, и вот как вы можете продолжить:

    • Нажмите «Windows key + R», чтобы открыть диалоговое окно «Run».
    • Введите «optionalfeatures.exe» в текстовое поле и нажмите Enter.
    • Может появиться «экран функций Windows»
    • Нажмите «Да», чтобы предоставить всем пользователям права на управление.
    • Найдите в списке «Медиа-функции».
    • Дважды щелкните по нему, а затем снимите флажок, связанный с ‘Windows Media Player’
    • Нажмите кнопку «ОК», чтобы сохранить изменения.
    • После завершения процесса перезагрузите компьютер.
    • Выполните ту же процедуру для включения компонента Windows Media Player.

    Откройте Foobar2000, и вы не получите неисправимых ошибок воспроизведения в вашей системе после применения этого метода. Если проблема не решена, переходите к следующему исправлению.

    Изменить аудиоформат по умолчанию:

    Вы можете изменить аудиоформат по умолчанию на качество компакт-диска с точки зрения решения проблемы, связанной с неустранимыми ошибками воспроизведения. При применении этого исправления вы можете заставить устройство воспроизведения по умолчанию использовать формат 16 бит, 44100 Гц (качество компакт-диска). Вот как вы можете принудительно настроить аудиоформат:

    • Введите «control mmsys.cpl Sounds» в команде «run» после нажатия «Windows key + R.»
    • Нажмите «Enter», чтобы открыть меню «Sound».
    • Нажмите «Да», чтобы предоставить доступ всем пользователям.
    • Перейдите на вкладку «Воспроизведение».
    • Щелкните правой кнопкой мыши «активное звуковое устройство», которое вы используете на своем компьютере.
    • Щелкните «Свойства».
    • Перейдите на вкладку «Дополнительно».
    • Перейдите в раздел «Формат по умолчанию».
    • Теперь настройте формат по умолчанию на 16 бит и 44100 Гц.
    • Нажмите «Применить изменения» и запустите приложение, в котором неустранимые ошибки воспроизведения больше не существуют.

    Foobar2000 — надежный медиаплеер, который во многих функциях ассоциируется с проигрывателем Windows Media. Здесь представлены некоторые из лучших протестированных решений для решения проблемы неустранимых ошибок воспроизведения, которая также иногда связана с кодом ошибки 0x88780078. Если вы один из пользователей, которые получают код ошибки 0x88780078, то эти решения отлично подойдут вам.

    В некоторых случаях быстрый перезапуск также сделает то же самое для пользователя. Вы можете проверить весь интерфейс, прежде чем приступить к любой из упомянутых процедур. Нет необходимости делать резервную копию каких-либо данных, поскольку описанные выше процессы не приведут к потере данных. Эти методы позволят полностью исправить код ошибки 0x88780078 и неисправимая ошибка воспроизведения с помощью Foobar. Если у вас есть какие-либо вопросы или отзывы, напишите комментарий в поле для комментариев.

    Источник

    Unrecoverable playback error unknown error 80070001

    Moderator-Следопыт Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Прошлые части темы: часть I , часть II

    foobar2000 — бесплатный аудиоплеер для Windows с широчайшими возможностями.

    Цитата:

    Крайне прозрачная цепочка звукового тракта, что положительно сказывается на качестве воспроизведения.
    Тесты сравнения плеера с конкурентами – AIMP, WinAmp, WMP, iTunes.

    Плеер поддерживает огромное количество аудиоформатов, начиная от распространенных вроде MP3 и FLAC, поддержка которых идет «из коробки», до форматов вроде мелодий из «Атари» и «Нинтендо» поддержку которых можно получить с помощью компонентов.

    К слову, кроме decoder-компонентов существует и множество других, т.к. открытая архитектура foobar2000 позволяет сторонним разработчикам расширять возможности плеера.

    Огромные возможности настройки интерфейса! С помощью базовых средств Вы можете очень просто менять расположение любых элементов интерфейса внутри окна, как Вам будет угодно. А если захотите поэкспериментировать, то с помощью продвинутых возможностей вид плеера можно изменить абсолютно до неузнаваемости. Умельцы делали полные копии интерфейса WMP, WinAmp и даже StarCraft!

    Продвинутые возможности работы с тегами – многие действия автоматизированы, есть поддержка «вшиваемых» обложек.

    Конвертирование во все поддерживаемые аудиоформаты и возможность RIP-инга аудиодисков

    Множество «приятных мелочей» — безстыковое воспроизведение, полная поддержка ReplayGain и юникода, настраиваемые горячие клавиши для всех функций.

    (из sites.google.com/site/foobar2000community)

    Поддержка:

    facebook.com/groups/foobar2000 документация на sites.google.com/site/foobar2000community tlk.io/foobar2000
    форум foobar2000.ru wiki vk группа
    официальный англоязычный форум wiki FAQ

    Другие программы автора:

  • Free Encoder Pack [FLAC, Ogg Vorbis, Opus, Musepack, WavPack]
  • Boom Audio Player — «младший брат» foobar2000
  • foobar2000 Mobile — версии для Apple iOS, Windows Universal (Windows Phone 10) и Android

    Сборки и конфигурации:

  • Конфигурации на deviantart.com, hydrogenaudio.org, customize.org. [ENG]
  • Тестирование » Сборки foobar2000 — всё, что касается сборок.

    Поддержим foobar2000 в голосовании: Лучший плеер для музыки — 2014 Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено:13:14 17-09-2008 | Исправлено: SAT31, 17:21 21-12-2016

    hk911

    Advanced Member

    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Skif_off

    Цитата:

    За счет дополнительных компонентов понимает практически все: http://www.foobar2000.org/components/view/foo_midi

    Благодарю! Теперь воспроизводит.

    Всего записей: 711 | Зарегистр. 16-07-2010 | Отправлено: 18:07 03-05-2013
    Zarlityada

    Junior Member

    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Можно как-то сделать, чтобы в плейлисте полоска выбора композиции перемещалась вместе со значком воспроизведения? А то приходится вручную пролистывать, когда иконка воспроизведения за границы плейлиста переходит. (Foobar2000 1.2.5 рус.)
    Ой. сам нашёл. Воспроизведение->Выбирать воспроизводимый трек. (Пост можно удалить.)
    Всего записей: 81 | Зарегистр. 18-01-2013 | Отправлено: 11:13 04-05-2013 | Исправлено: Zarlityada, 11:26 04-05-2013
    SAT31

    Gold Member

    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору foobar2000 1.2. 6
    Изменения:
    — Windows 8 “connected standby” countermeasures:
    — Option to keep display up while playing — seems to be the only way to prevent Windows desktop apps from being shut down while the machine turns idle
    — Fixed misbehavior when updating attached pictures in files with ID3v2.2 tags.
    — ReplayGain tagging now works with AIFF.
    — Fixed crashing when embedding specific picture files into Ogg Vorbis files.
    — Attached picture manager dialog tweaks.
    Всего записей: 9169 | Зарегистр. 11-09-2009 | Отправлено: 17:56 04-05-2013
    myname13

    Member

    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Русифицированная версия foobar2000 v.1.2.6
    Всего записей: 315 | Зарегистр. 01-10-2011 | Отправлено: 22:06 04-05-2013
    zhiganov

    Newbie

    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Помогите настроить вывод звука по ASIO на M-Audio Revolution 5.1, месяц уже мучаюсь и почему-то получается только через ASIOforALL. А звук чудовищно отличается от того, что еще недавно звуковая выдавала под WinXP.

    Вроде в драйверах Revo 5.1 есть revoasio.dll и revoasio64.dll, значит должно как я понимаю работать просто после установки foo_out_asio и выбора в Output/Device «ASIO: M-Audio Revo ASIO», или на худой конец вообще «DS: динамики M-Audio Revo». Но не работает — пришет драйверов под АСИО нет.

    Имеется:
    foobar2000 v.1.2.5 (foo_out_asio установлен)
    Windows7 x64 (обновления по март 2013), системные звуки отключены, встроенный в мать звук тоже.
    дрова Revo 5.1 для Висты с оф.сайта
    Скрины имеющегося:
    http://i020.radikal.ru/1305/ce/4b39e269b3e0.png

    Выбираю в Output/Device «ASIO: M-Audio Revo ASIO», жму Apply, запускаю плеер — он выдает «Unrecoverable playback error: Timeout», а винда выдает
    http://i081.radikal.ru/1305/93/e4ef76065fdc.png
    Ладно, не настроена раскладка каналов, на ХР помню настраивал, наверно из-за этого — иду в меню Playback/Output/Asio, жму в Custom channel mapping кнопку Add new, получаю 7-секундный тупизм и аналогичное сбщ винды об ошибке ASIOhost32.exe а foobar выдает: http://s61.radikal.ru/i173/1305/d5/d270c5182171.png

    Если на вкладке Output/Asio поставить галку на «Use 64-bit ASIO drivers» (т.к. Винда 64 битная), фубар просит перезапуститься, после чего в Custom channel mapping кнопка Add new дает сообщение фубарки опять что дрова под АСИО не найдены, но — без сопутствующего сообщения винды про ASIOhost32.exe

    Источник

    Adblock
    detector

Понравилась статья? Поделить с друзьями:
  • Error unknown command oidc login for kubectl
  • Error unknown command init for helm
  • Error unknown command diff for helm
  • Error unknown chunk type cac2
  • Error unknown authentication strategy local