- 浏览: 264698 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
zhanght327:
现在这个办法不好使了。。。火狐 谷歌 IE 360 迅雷 都不 ...
Aptana插件版Zip包下载方法 -
admins:
一般重启eclipse 与虚拟机就好了。或者看看logcat设 ...
Logcat问题的解决方法 -
CoolYJCK:
这个zip包用不了~~
Aptana插件版Zip包下载方法 -
crazysumer:
嗯,没有prepare报错了
Android的MediaPlayer错误 -
extjavaee:
问题就在于在layout中的决定ListView或 ...
ListView与Adapter使用要点
在使用MediaPlayer的时候,要注意几个Listener的配合使用,但是,MediaPlayer还是会经常报些奇怪的错误信息。
通常这些错误都是由数据源或者调用MediaPlayer中的方法时没有注意MediaPlayer的状态而引起。
常见错误信息分析:
(-38,0)
一般是由于在MediaPlayer还没有Prepared的状态下调用了类似getDuration()之类的方法而引起,
例如报错:Attempt to call getDuration without a valid mediaplayer
以下是MediaPlayer的错误类型源码:
/* ------------------------------------------------------------------
* Copyright (C) 1998-2010 PacketVideo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
* See the License for the specific language governing permissions
* and limitations under the License.
* -------------------------------------------------------------------
*/
* Copyright (C) 1998-2010 PacketVideo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
* See the License for the specific language governing permissions
* and limitations under the License.
* -------------------------------------------------------------------
*/
/**
* @file pv_return_codes.h
* @brief This file defines the general return and event codes to be used by PVMF elements.
* Theses base-level codes are unique. Error codes are negative values and informational
* codes are positive values.
* NOTE: If you add any new event, update the PVMFStatusToString method as well.
*/
* @file pv_return_codes.h
* @brief This file defines the general return and event codes to be used by PVMF elements.
* Theses base-level codes are unique. Error codes are negative values and informational
* codes are positive values.
* NOTE: If you add any new event, update the PVMFStatusToString method as well.
*/
#ifndef PVMF_RETURN_CODES_H_INCLUDED
#define PVMF_RETURN_CODES_H_INCLUDED
#define PVMF_RETURN_CODES_H_INCLUDED
#ifndef OSCL_BASE_H_INCLUDED
#include "oscl_base.h"
#endif
#include "oscl_base.h"
#endif
typedef int32 PVMFStatus;
// Return codes
/*
Return code for general success
*/
const PVMFStatus PVMFSuccess = 1;
/*
Return code for pending completion
*/
const PVMFStatus PVMFPending = 0;
/*
Return code for never set
*/
const PVMFStatus PVMFNotSet = 2;
/*
Return code for Command Complete
*/
const PVMFStatus PVMFCmdCompleted = 3;
/*
Return code for general success
*/
const PVMFStatus PVMFSuccess = 1;
/*
Return code for pending completion
*/
const PVMFStatus PVMFPending = 0;
/*
Return code for never set
*/
const PVMFStatus PVMFNotSet = 2;
/*
Return code for Command Complete
*/
const PVMFStatus PVMFCmdCompleted = 3;
// Error codes (negative values)
/*
Definition of first error event in range (not an actual error code).
*/
const PVMFStatus PVMFErrFirst = (-1);
/*
Return code for general failure
*/
const PVMFStatus PVMFFailure = (-1);
/*
Error due to cancellation
*/
const PVMFStatus PVMFErrCancelled = (-2);
/*
Error due to no memory being available
*/
const PVMFStatus PVMFErrNoMemory = (-3);
/*
Error due to request not being supported
*/
const PVMFStatus PVMFErrNotSupported = (-4);
/*
Error due to invalid argument
*/
const PVMFStatus PVMFErrArgument = (-5);
/*
Error due to invalid resource handle being specified
*/
const PVMFStatus PVMFErrBadHandle = (-6);
/*
Error due to resource already exists and another one cannot be created
*/
const PVMFStatus PVMFErrAlreadyExists = (-7);
/*
Error due to resource being busy and request cannot be handled
*/
const PVMFStatus PVMFErrBusy = (-8);
/*
Error due to resource not ready to accept request
*/
const PVMFStatus PVMFErrNotReady = (-9);
/*
Error due to data corruption being detected
*/
const PVMFStatus PVMFErrCorrupt = (-10);
/*
Error due to request timing out
*/
const PVMFStatus PVMFErrTimeout = (-11);
/*
Error due to general overflow
*/
const PVMFStatus PVMFErrOverflow = (-12);
/*
Error due to general underflow
*/
const PVMFStatus PVMFErrUnderflow = (-13);
/*
Error due to resource being in wrong state to handle request
*/
const PVMFStatus PVMFErrInvalidState = (-14);
/*
Error due to resource not being available
*/
const PVMFStatus PVMFErrNoResources = (-15);
/*
Error due to invalid configuration of resource
*/
const PVMFStatus PVMFErrResourceConfiguration = (-16);
/*
Error due to general error in underlying resource
*/
const PVMFStatus PVMFErrResource = (-17);
/*
Error due to general data processing
*/
const PVMFStatus PVMFErrProcessing = (-18);
/*
Error due to general port processing
*/
const PVMFStatus PVMFErrPortProcessing = (-19);
/*
Error due to lack of authorization to access a resource.
*/
const PVMFStatus PVMFErrAccessDenied = (-20);
/*
Unused error code. Can be re-defined.
*/
const PVMFStatus PVMFErrUnused_01 = (-21);
/*
Unused error code. Can be re-defined.
*/
const PVMFStatus PVMFErrUnused_02 = (-22);
/*
Error due to the download content length larger than the maximum request size
*/
const PVMFStatus PVMFErrContentTooLarge = (-23);
/*
Error due to a maximum number of objects in use
*/
const PVMFStatus PVMFErrMaxReached = (-24);
/*
Return code for low disk space
*/
const PVMFStatus PVMFLowDiskSpace = (-25);
/*
Error due to the requirement of user-id and password input from app for HTTP basic/digest authentication
*/
const PVMFStatus PVMFErrHTTPAuthenticationRequired = (-26);
/*
PVMFMediaClock specific error. Callback has become invalid due to change in direction of NPT clock.
*/
const PVMFStatus PVMFErrCallbackHasBecomeInvalid = (-27);
/*
PVMFMediaClock specific error. Callback is called as clock has stopped.
*/
const PVMFStatus PVMFErrCallbackClockStopped = (-28);
/*
Error due to missing call for ReleaseMatadataValue() API
*/
const PVMFStatus PVMFErrReleaseMetadataValueNotDone = (-29);
/*
Error due to the redirect error
*/
const PVMFStatus PVMFErrRedirect = (-30);
/*
Error if a given method or API is not implemented. This is NOT the same as PVMFErrNotSupported.
*/
const PVMFStatus PVMFErrNotImplemented = (-31);
Definition of first error event in range (not an actual error code).
*/
const PVMFStatus PVMFErrFirst = (-1);
/*
Return code for general failure
*/
const PVMFStatus PVMFFailure = (-1);
/*
Error due to cancellation
*/
const PVMFStatus PVMFErrCancelled = (-2);
/*
Error due to no memory being available
*/
const PVMFStatus PVMFErrNoMemory = (-3);
/*
Error due to request not being supported
*/
const PVMFStatus PVMFErrNotSupported = (-4);
/*
Error due to invalid argument
*/
const PVMFStatus PVMFErrArgument = (-5);
/*
Error due to invalid resource handle being specified
*/
const PVMFStatus PVMFErrBadHandle = (-6);
/*
Error due to resource already exists and another one cannot be created
*/
const PVMFStatus PVMFErrAlreadyExists = (-7);
/*
Error due to resource being busy and request cannot be handled
*/
const PVMFStatus PVMFErrBusy = (-8);
/*
Error due to resource not ready to accept request
*/
const PVMFStatus PVMFErrNotReady = (-9);
/*
Error due to data corruption being detected
*/
const PVMFStatus PVMFErrCorrupt = (-10);
/*
Error due to request timing out
*/
const PVMFStatus PVMFErrTimeout = (-11);
/*
Error due to general overflow
*/
const PVMFStatus PVMFErrOverflow = (-12);
/*
Error due to general underflow
*/
const PVMFStatus PVMFErrUnderflow = (-13);
/*
Error due to resource being in wrong state to handle request
*/
const PVMFStatus PVMFErrInvalidState = (-14);
/*
Error due to resource not being available
*/
const PVMFStatus PVMFErrNoResources = (-15);
/*
Error due to invalid configuration of resource
*/
const PVMFStatus PVMFErrResourceConfiguration = (-16);
/*
Error due to general error in underlying resource
*/
const PVMFStatus PVMFErrResource = (-17);
/*
Error due to general data processing
*/
const PVMFStatus PVMFErrProcessing = (-18);
/*
Error due to general port processing
*/
const PVMFStatus PVMFErrPortProcessing = (-19);
/*
Error due to lack of authorization to access a resource.
*/
const PVMFStatus PVMFErrAccessDenied = (-20);
/*
Unused error code. Can be re-defined.
*/
const PVMFStatus PVMFErrUnused_01 = (-21);
/*
Unused error code. Can be re-defined.
*/
const PVMFStatus PVMFErrUnused_02 = (-22);
/*
Error due to the download content length larger than the maximum request size
*/
const PVMFStatus PVMFErrContentTooLarge = (-23);
/*
Error due to a maximum number of objects in use
*/
const PVMFStatus PVMFErrMaxReached = (-24);
/*
Return code for low disk space
*/
const PVMFStatus PVMFLowDiskSpace = (-25);
/*
Error due to the requirement of user-id and password input from app for HTTP basic/digest authentication
*/
const PVMFStatus PVMFErrHTTPAuthenticationRequired = (-26);
/*
PVMFMediaClock specific error. Callback has become invalid due to change in direction of NPT clock.
*/
const PVMFStatus PVMFErrCallbackHasBecomeInvalid = (-27);
/*
PVMFMediaClock specific error. Callback is called as clock has stopped.
*/
const PVMFStatus PVMFErrCallbackClockStopped = (-28);
/*
Error due to missing call for ReleaseMatadataValue() API
*/
const PVMFStatus PVMFErrReleaseMetadataValueNotDone = (-29);
/*
Error due to the redirect error
*/
const PVMFStatus PVMFErrRedirect = (-30);
/*
Error if a given method or API is not implemented. This is NOT the same as PVMFErrNotSupported.
*/
const PVMFStatus PVMFErrNotImplemented = (-31);
/*
DRM license not found
*/
const PVMFStatus PVMFErrDrmLicenseNotFound = (-32);
/*
DRM license has expired due to end time or usage count restriction
*/
const PVMFStatus PVMFErrDrmLicenseExpired = (-33);
/*
DRM license has a start time restriction and current time is too early
*/
const PVMFStatus PVMFErrDrmLicenseNotYetValid = (-34);
/*
DRM rights are insufficient for the requested operation
*/
const PVMFStatus PVMFErrDrmInsufficientRights = (-35);
/*
DRM rights require higher output protection level than supported by the device
*/
const PVMFStatus PVMFErrDrmOutputProtectionLevel = (-36);
/*
DRM clock rollback detected.
*/
const PVMFStatus PVMFErrDrmClockRollback = (-37);
/*
DRM clock is not available or cannot be read
*/
const PVMFStatus PVMFErrDrmClockError = (-38);
/*
DRM license store is corrupted
*/
const PVMFStatus PVMFErrDrmLicenseStoreCorrupt = (-39);
/*
DRM license store is not valid for the device.
*/
const PVMFStatus PVMFErrDrmLicenseStoreInvalid = (-40);
/*
DRM license store access failed
*/
const PVMFStatus PVMFErrDrmLicenseStoreAccess = (-41);
/*
DRM Device data access failed
*/
const PVMFStatus PVMFErrDrmDeviceDataAccess = (-42);
/*
DRM network error occurred in server communication
*/
const PVMFStatus PVMFErrDrmNetworkError = (-43);
/*
DRM device ID cannot be determined
*/
const PVMFStatus PVMFErrDrmDeviceIDUnavailable = (-44);
/*
DRM data is not matched to device
*/
const PVMFStatus PVMFErrDrmDeviceDataMismatch = (-45);
/*
DRM cryptography operation failed
*/
const PVMFStatus PVMFErrDrmCryptoError = (-46);
/*
DRM license not found, but a preview of the content is available.
*/
const PVMFStatus PVMFErrDrmLicenseNotFoundPreviewAvailable = (-47);
/*
Error due to unable to communicate with server
*/
const PVMFStatus PVMFErrDrmServerError = (-48);
/*
Error when a license server requests registration to a domain.
*/
const PVMFStatus PVMFErrDrmDomainRequired = (-49);
/*
Error when a license server requests renewal of a domain registration.
*/
const PVMFStatus PVMFErrDrmDomainRenewRequired = (-50);
/*
Error when a license server reports that the device is not part of the domain.
*/
const PVMFStatus PVMFErrDrmDomainNotAMember = (-51);
/*
Error due to device currently not activated for drm-protected content playback
*/
const PVMFStatus PVMFErrDrmDeviceNotActivated = (-52);
/*
The metering certificate was not found in the store.
*/
const PVMFStatus PVMFErrDrmMeterCertNotFound = (-53);
/*
Service specific server error.
*/
const PVMFStatus PVMFErrDrmServerServiceSpecific = (-54);
/*
An internal server error occurred.
*/
const PVMFStatus PVMFErrDrmServerInternalError = (-55);
/*
The device limit for the domain has been reached.
*/
const PVMFStatus PVMFErrDrmServerDeviceLimitReached = (-56);
/*
The metering identifier is unknown.
*/
const PVMFStatus PVMFErrDrmServerUnknownMeteringID = (-57);
/*
The computer limit for the domain has been reached.
*/
const PVMFStatus PVMFErrDrmServerComputerLimitReached = (-58);
/*
The protocol version specified was not supported by the server.
*/
const PVMFStatus PVMFErrDrmServerProtocolVersionMismatch = (-59);
/*
The account identifier is unknown.
*/
const PVMFStatus PVMFErrDrmServerUnknownAccountID = (-60);
/*
Server redirected request to different server due to protocol mismatch.
*/
const PVMFStatus PVMFErrDrmServerProtocolRedirect = (-61);
/*
*/
DRM license not found
*/
const PVMFStatus PVMFErrDrmLicenseNotFound = (-32);
/*
DRM license has expired due to end time or usage count restriction
*/
const PVMFStatus PVMFErrDrmLicenseExpired = (-33);
/*
DRM license has a start time restriction and current time is too early
*/
const PVMFStatus PVMFErrDrmLicenseNotYetValid = (-34);
/*
DRM rights are insufficient for the requested operation
*/
const PVMFStatus PVMFErrDrmInsufficientRights = (-35);
/*
DRM rights require higher output protection level than supported by the device
*/
const PVMFStatus PVMFErrDrmOutputProtectionLevel = (-36);
/*
DRM clock rollback detected.
*/
const PVMFStatus PVMFErrDrmClockRollback = (-37);
/*
DRM clock is not available or cannot be read
*/
const PVMFStatus PVMFErrDrmClockError = (-38);
/*
DRM license store is corrupted
*/
const PVMFStatus PVMFErrDrmLicenseStoreCorrupt = (-39);
/*
DRM license store is not valid for the device.
*/
const PVMFStatus PVMFErrDrmLicenseStoreInvalid = (-40);
/*
DRM license store access failed
*/
const PVMFStatus PVMFErrDrmLicenseStoreAccess = (-41);
/*
DRM Device data access failed
*/
const PVMFStatus PVMFErrDrmDeviceDataAccess = (-42);
/*
DRM network error occurred in server communication
*/
const PVMFStatus PVMFErrDrmNetworkError = (-43);
/*
DRM device ID cannot be determined
*/
const PVMFStatus PVMFErrDrmDeviceIDUnavailable = (-44);
/*
DRM data is not matched to device
*/
const PVMFStatus PVMFErrDrmDeviceDataMismatch = (-45);
/*
DRM cryptography operation failed
*/
const PVMFStatus PVMFErrDrmCryptoError = (-46);
/*
DRM license not found, but a preview of the content is available.
*/
const PVMFStatus PVMFErrDrmLicenseNotFoundPreviewAvailable = (-47);
/*
Error due to unable to communicate with server
*/
const PVMFStatus PVMFErrDrmServerError = (-48);
/*
Error when a license server requests registration to a domain.
*/
const PVMFStatus PVMFErrDrmDomainRequired = (-49);
/*
Error when a license server requests renewal of a domain registration.
*/
const PVMFStatus PVMFErrDrmDomainRenewRequired = (-50);
/*
Error when a license server reports that the device is not part of the domain.
*/
const PVMFStatus PVMFErrDrmDomainNotAMember = (-51);
/*
Error due to device currently not activated for drm-protected content playback
*/
const PVMFStatus PVMFErrDrmDeviceNotActivated = (-52);
/*
The metering certificate was not found in the store.
*/
const PVMFStatus PVMFErrDrmMeterCertNotFound = (-53);
/*
Service specific server error.
*/
const PVMFStatus PVMFErrDrmServerServiceSpecific = (-54);
/*
An internal server error occurred.
*/
const PVMFStatus PVMFErrDrmServerInternalError = (-55);
/*
The device limit for the domain has been reached.
*/
const PVMFStatus PVMFErrDrmServerDeviceLimitReached = (-56);
/*
The metering identifier is unknown.
*/
const PVMFStatus PVMFErrDrmServerUnknownMeteringID = (-57);
/*
The computer limit for the domain has been reached.
*/
const PVMFStatus PVMFErrDrmServerComputerLimitReached = (-58);
/*
The protocol version specified was not supported by the server.
*/
const PVMFStatus PVMFErrDrmServerProtocolVersionMismatch = (-59);
/*
The account identifier is unknown.
*/
const PVMFStatus PVMFErrDrmServerUnknownAccountID = (-60);
/*
Server redirected request to different server due to protocol mismatch.
*/
const PVMFStatus PVMFErrDrmServerProtocolRedirect = (-61);
/*
*/
/*
... this range reserved for future DRM-related errors
*/
/*
DRM Operational Error not otherwise specified
*/
const PVMFStatus PVMFErrDrmOperationFailed = (-81);
/*
Error returned when the video container is not valid for progressive playback.
*/
const PVMFStatus PVMFErrContentInvalidForProgressivePlayback = (-82);
... this range reserved for future DRM-related errors
*/
/*
DRM Operational Error not otherwise specified
*/
const PVMFStatus PVMFErrDrmOperationFailed = (-81);
/*
Error returned when the video container is not valid for progressive playback.
*/
const PVMFStatus PVMFErrContentInvalidForProgressivePlayback = (-82);
/*
RTSP Error codes
*/
const PVMFStatus PVMFErrRTSP400BadRequest = (-83);
const PVMFStatus PVMFErrRTSP401Unauthorized = (-84);
const PVMFStatus PVMFErrRTSP402CodePaymentRequired = (-85);
const PVMFStatus PVMFErrRTSP403Forbidden = (-86);
const PVMFStatus PVMFErrRTSP404NotFound = (-87);
const PVMFStatus PVMFErrRTSP405MethodNotAllowed = (-88);
const PVMFStatus PVMFErrRTSP406NotAcceptable = (-89);
const PVMFStatus PVMFErrRTSP407ProxyAuthenticationRequired = (-90);
const PVMFStatus PVMFErrRTSP408RequestTimeOut = (-91);
RTSP Error codes
*/
const PVMFStatus PVMFErrRTSP400BadRequest = (-83);
const PVMFStatus PVMFErrRTSP401Unauthorized = (-84);
const PVMFStatus PVMFErrRTSP402CodePaymentRequired = (-85);
const PVMFStatus PVMFErrRTSP403Forbidden = (-86);
const PVMFStatus PVMFErrRTSP404NotFound = (-87);
const PVMFStatus PVMFErrRTSP405MethodNotAllowed = (-88);
const PVMFStatus PVMFErrRTSP406NotAcceptable = (-89);
const PVMFStatus PVMFErrRTSP407ProxyAuthenticationRequired = (-90);
const PVMFStatus PVMFErrRTSP408RequestTimeOut = (-91);
const PVMFStatus PVMFErrRTSP410Gone = (-92);
const PVMFStatus PVMFErrRTSP411LengthRequired = (-93);
const PVMFStatus PVMFErrRTSP412PreconditionFailed = (-94);
const PVMFStatus PVMFErrRTSP413RequestEntityTooLarge = (-95);
const PVMFStatus PVMFErrRTSP414RequestURITooLarge = (-96);
const PVMFStatus PVMFErrRTSP415UnsupportedMediaType = (-97);
const PVMFStatus PVMFErrRTSP411LengthRequired = (-93);
const PVMFStatus PVMFErrRTSP412PreconditionFailed = (-94);
const PVMFStatus PVMFErrRTSP413RequestEntityTooLarge = (-95);
const PVMFStatus PVMFErrRTSP414RequestURITooLarge = (-96);
const PVMFStatus PVMFErrRTSP415UnsupportedMediaType = (-97);
const PVMFStatus PVMFErrRTSP451ParameterNotUnderstood = (-98);
const PVMFStatus PVMFErrRTSP452ConferenceNotFound = (-99);
const PVMFStatus PVMFErrRTSP453NotEnoughBandwidth = (-100);
const PVMFStatus PVMFErrRTSP454SessionNotFound = (-101);
const PVMFStatus PVMFErrRTSP455MethodNotValidInThisState = (-102);
const PVMFStatus PVMFErrRTSP456HeaderFieldNotValidForResource = (-103);
const PVMFStatus PVMFErrRTSP457InvalidRange = (-104);
const PVMFStatus PVMFErrRTSP458ParameterIsReadOnly = (-105);
const PVMFStatus PVMFErrRTSP459AggregateOperationNotAllowed = (-106);
const PVMFStatus PVMFErrRTSP460OnlyAggregateOperationAllowed = (-107);
const PVMFStatus PVMFErrRTSP461UnsupportedTransport = (-108);
const PVMFStatus PVMFErrRTSP462DestinationUnreachable = (-109);
const PVMFStatus PVMFErrRTSP480UnsupportedClient = (-110);
const PVMFStatus PVMFErrRTSP452ConferenceNotFound = (-99);
const PVMFStatus PVMFErrRTSP453NotEnoughBandwidth = (-100);
const PVMFStatus PVMFErrRTSP454SessionNotFound = (-101);
const PVMFStatus PVMFErrRTSP455MethodNotValidInThisState = (-102);
const PVMFStatus PVMFErrRTSP456HeaderFieldNotValidForResource = (-103);
const PVMFStatus PVMFErrRTSP457InvalidRange = (-104);
const PVMFStatus PVMFErrRTSP458ParameterIsReadOnly = (-105);
const PVMFStatus PVMFErrRTSP459AggregateOperationNotAllowed = (-106);
const PVMFStatus PVMFErrRTSP460OnlyAggregateOperationAllowed = (-107);
const PVMFStatus PVMFErrRTSP461UnsupportedTransport = (-108);
const PVMFStatus PVMFErrRTSP462DestinationUnreachable = (-109);
const PVMFStatus PVMFErrRTSP480UnsupportedClient = (-110);
const PVMFStatus PVMFErrRTSP500InternalServerError = (-111);
const PVMFStatus PVMFErrRTSP501NotImplemented = (-112);
const PVMFStatus PVMFErrRTSP502BadGateway = (-113);
const PVMFStatus PVMFErrRTSP503ServiceUnavailable = (-114);
const PVMFStatus PVMFErrRTSP504GatewayTimeout = (-115);
const PVMFStatus PVMFErrRTSP505RTSPVersionNotSupported = (-116);
const PVMFStatus PVMFErrRTSP501NotImplemented = (-112);
const PVMFStatus PVMFErrRTSP502BadGateway = (-113);
const PVMFStatus PVMFErrRTSP503ServiceUnavailable = (-114);
const PVMFStatus PVMFErrRTSP504GatewayTimeout = (-115);
const PVMFStatus PVMFErrRTSP505RTSPVersionNotSupported = (-116);
const PVMFStatus PVMFErrRTSP551OptionNotSupported = (-117);
/*
Reserve for future error code extensions
*/
const PVMFStatus PVMFErrRTSPExtensionCode = (-137);
/*
Reserve for future error code extensions
*/
const PVMFStatus PVMFErrRTSPExtensionCode = (-137);
/*
Placeholder for last event in range.
*/
const PVMFStatus PVMFErrLast = (-137);
/*
Macro to tell if a value is in PVMFErr range
*/
#define IsPVMFErrCode(s) ((PVMFErrLast<=s)&&(s<=PVMFErrFirst))
Placeholder for last event in range.
*/
const PVMFStatus PVMFErrLast = (-137);
/*
Macro to tell if a value is in PVMFErr range
*/
#define IsPVMFErrCode(s) ((PVMFErrLast<=s)&&(s<=PVMFErrFirst))
// Informational codes (positive values)
const PVMFStatus PVMFInfoFirst = 10;
/*
Notification that a port was created
*/
const PVMFStatus PVMFInfoPortCreated = 10;
/*
Notification that a port was deleted
*/
const PVMFStatus PVMFInfoPortDeleted = 11;
/*
Notification that a port was connected
*/
const PVMFStatus PVMFInfoPortConnected = 12;
/*
Notification that a port was disconnected
*/
const PVMFStatus PVMFInfoPortDisconnected = 13;
/*
Notification that an overflow occurred (not fatal error)
*/
const PVMFStatus PVMFInfoOverflow = 14;
/*
Notification that an underflow occurred (not fatal error)
*/
const PVMFStatus PVMFInfoUnderflow = 15;
/*
Notification that a processing failure occurred (not fatal error)
*/
const PVMFStatus PVMFInfoProcessingFailure = 16;
/*
Notification that end of data stream has been reached
*/
const PVMFStatus PVMFInfoEndOfData = 17;
/*
Notification that a data buffer has been created
*/
const PVMFStatus PVMFInfoBufferCreated = 18;
/*
Notification that buffering of data has started
*/
const PVMFStatus PVMFInfoBufferingStart = 19;
/*
Notification for data buffering level status
*/
const PVMFStatus PVMFInfoBufferingStatus = 20;
/*
Notification that data buffering has completed
*/
const PVMFStatus PVMFInfoBufferingComplete = 21;
/*
Notification that data is ready for use
*/
const PVMFStatus PVMFInfoDataReady = 22;
/*
Notification for position status
*/
const PVMFStatus PVMFInfoPositionStatus = 23;
/*
Notification for node state change
*/
const PVMFStatus PVMFInfoStateChanged = 24;
/*
Notification that data was discarded during synchronization.
*/
const PVMFStatus PVMFInfoDataDiscarded = 25;
/*
Notification that error handling has started
*/
const PVMFStatus PVMFInfoErrorHandlingStart = 26;
/*
Notification that error handling has completed
*/
const PVMFStatus PVMFInfoErrorHandlingComplete = 27;
/*
Notification from a remote source
*/
const PVMFStatus PVMFInfoRemoteSourceNotification = 28;
/*
Notification that license acquisition has started.
*/
const PVMFStatus PVMFInfoLicenseAcquisitionStarted = 29;
/*
Notification that download content length is available
*/
const PVMFStatus PVMFInfoContentLength = 30;
/*
Notification that downloaded content reaches the maximum request size, and will
be truncated, especially for the case of unavailable content length
*/
const PVMFStatus PVMFInfoContentTruncated = 31;
/*
Notification that source format is not supported, typically sent
during protocol rollover
*/
const PVMFStatus PVMFInfoSourceFormatNotSupported = 32;
/*
Notification that a clip transition has occurred while playing a playlist
*/
const PVMFStatus PVMFInfoPlayListClipTransition = 33;
/*
Notification that content type for download or HTTP streaming is available
*/
const PVMFStatus PVMFInfoContentType = 34;
/*
Notification that paticular track is disable. This one is on a per track basis.
*/
const PVMFStatus PVMFInfoTrackDisable = 35;
/*
Notification that unexpected data has been obtained, especially for download,
when client receives from server more data than requested in content-length header
*/
const PVMFStatus PVMFInfoUnexpectedData = 36;
/*
Notification that server discnnect happens after download is complete
*/
const PVMFStatus PVMFInfoSessionDisconnect = 37;
/*
Notification that new meadi stream has been started
*/
const PVMFStatus PVMFInfoStartOfData = 38;
/*
Notification that node has processed a command with ReportObserver marker info
*/
const PVMFStatus PVMFInfoReportObserverRecieved = 39;
/*
Notification that meta data is available with source node
*/
const PVMFStatus PVMFInfoMetadataAvailable = 40;
/*
Notification that duration is available with source node
*/
const PVMFStatus PVMFInfoDurationAvailable = 41;
/*
Notification that Change Position request not supported
*/
const PVMFStatus PVMFInfoChangePlaybackPositionNotSupported = 42;
/*
Notification that the content is poorly inter-leaved
*/
const PVMFStatus PVMFInfoPoorlyInterleavedContent = 43;
/*
Notification for actual playback position after repositioning
*/
const PVMFStatus PVMFInfoActualPlaybackPosition = 44;
/*
Notification that the live buffer is empty
*/
const PVMFStatus PVMFInfoLiveBufferEmpty = 45;
/*
Notification that a server has responded with 200 OK to a Playlist play request
*/
const PVMFStatus PVMFInfoPlayListSwitch = 46;
/*
Notification of configuration complete
*/
const PVMFStatus PVMFMIOConfigurationComplete = 47;
/*
Notification that the video track is falling behind
*/
const PVMFStatus PVMFInfoVideoTrackFallingBehind = 48;
/*
Notification that memory is not available for new RTP packets
*/
const PVMFStatus PVMFInfoSourceOverflow = 49;
/*
Notification for Media data length in shoutcast session
*/
const PVMFStatus PVMFInfoShoutcastMediaDataLength = 50;
/*
Notification for clip bitrate in shoutcast session
*/
const PVMFStatus PVMFInfoShoutcastClipBitrate = 51;
/*
Notification for shoutcast session
*/
const PVMFStatus PVMFInfoIsShoutcastSesssion = 52;
/*
Notification that the engine must select tracks (for e.g. during a 3GPP FCS)
*/
const PVMFStatus PVMFInfoTrackSelectionNeeded = 53;
/*
Notification for corrupted clip during playlist playback
*/
const PVMFStatus PVMFInfoClipCorrupted = 54;
/*
Notification that source format has been updated
*/
const PVMFStatus PVMFInfoSourceFormatUpdated = 55;
/*
Notification for invalid ts in the RTP packet
*/
const PVMFStatus PVMFErrInvalidRTPTimeInPkt = 56;
/*
Notification that pvmiGetBufferAllocatorSpecificInfoSync was unsuccessful
*/
const PVMFStatus PVMFPvmiBufferAllocatorNotAcquired = 55;
/*
Notification that pvmiGetBufferAllocatorSpecificInfoSync was successful
*/
const PVMFStatus PVMFPvmiBufferAlloctorAcquired = 56;
Notification that a port was created
*/
const PVMFStatus PVMFInfoPortCreated = 10;
/*
Notification that a port was deleted
*/
const PVMFStatus PVMFInfoPortDeleted = 11;
/*
Notification that a port was connected
*/
const PVMFStatus PVMFInfoPortConnected = 12;
/*
Notification that a port was disconnected
*/
const PVMFStatus PVMFInfoPortDisconnected = 13;
/*
Notification that an overflow occurred (not fatal error)
*/
const PVMFStatus PVMFInfoOverflow = 14;
/*
Notification that an underflow occurred (not fatal error)
*/
const PVMFStatus PVMFInfoUnderflow = 15;
/*
Notification that a processing failure occurred (not fatal error)
*/
const PVMFStatus PVMFInfoProcessingFailure = 16;
/*
Notification that end of data stream has been reached
*/
const PVMFStatus PVMFInfoEndOfData = 17;
/*
Notification that a data buffer has been created
*/
const PVMFStatus PVMFInfoBufferCreated = 18;
/*
Notification that buffering of data has started
*/
const PVMFStatus PVMFInfoBufferingStart = 19;
/*
Notification for data buffering level status
*/
const PVMFStatus PVMFInfoBufferingStatus = 20;
/*
Notification that data buffering has completed
*/
const PVMFStatus PVMFInfoBufferingComplete = 21;
/*
Notification that data is ready for use
*/
const PVMFStatus PVMFInfoDataReady = 22;
/*
Notification for position status
*/
const PVMFStatus PVMFInfoPositionStatus = 23;
/*
Notification for node state change
*/
const PVMFStatus PVMFInfoStateChanged = 24;
/*
Notification that data was discarded during synchronization.
*/
const PVMFStatus PVMFInfoDataDiscarded = 25;
/*
Notification that error handling has started
*/
const PVMFStatus PVMFInfoErrorHandlingStart = 26;
/*
Notification that error handling has completed
*/
const PVMFStatus PVMFInfoErrorHandlingComplete = 27;
/*
Notification from a remote source
*/
const PVMFStatus PVMFInfoRemoteSourceNotification = 28;
/*
Notification that license acquisition has started.
*/
const PVMFStatus PVMFInfoLicenseAcquisitionStarted = 29;
/*
Notification that download content length is available
*/
const PVMFStatus PVMFInfoContentLength = 30;
/*
Notification that downloaded content reaches the maximum request size, and will
be truncated, especially for the case of unavailable content length
*/
const PVMFStatus PVMFInfoContentTruncated = 31;
/*
Notification that source format is not supported, typically sent
during protocol rollover
*/
const PVMFStatus PVMFInfoSourceFormatNotSupported = 32;
/*
Notification that a clip transition has occurred while playing a playlist
*/
const PVMFStatus PVMFInfoPlayListClipTransition = 33;
/*
Notification that content type for download or HTTP streaming is available
*/
const PVMFStatus PVMFInfoContentType = 34;
/*
Notification that paticular track is disable. This one is on a per track basis.
*/
const PVMFStatus PVMFInfoTrackDisable = 35;
/*
Notification that unexpected data has been obtained, especially for download,
when client receives from server more data than requested in content-length header
*/
const PVMFStatus PVMFInfoUnexpectedData = 36;
/*
Notification that server discnnect happens after download is complete
*/
const PVMFStatus PVMFInfoSessionDisconnect = 37;
/*
Notification that new meadi stream has been started
*/
const PVMFStatus PVMFInfoStartOfData = 38;
/*
Notification that node has processed a command with ReportObserver marker info
*/
const PVMFStatus PVMFInfoReportObserverRecieved = 39;
/*
Notification that meta data is available with source node
*/
const PVMFStatus PVMFInfoMetadataAvailable = 40;
/*
Notification that duration is available with source node
*/
const PVMFStatus PVMFInfoDurationAvailable = 41;
/*
Notification that Change Position request not supported
*/
const PVMFStatus PVMFInfoChangePlaybackPositionNotSupported = 42;
/*
Notification that the content is poorly inter-leaved
*/
const PVMFStatus PVMFInfoPoorlyInterleavedContent = 43;
/*
Notification for actual playback position after repositioning
*/
const PVMFStatus PVMFInfoActualPlaybackPosition = 44;
/*
Notification that the live buffer is empty
*/
const PVMFStatus PVMFInfoLiveBufferEmpty = 45;
/*
Notification that a server has responded with 200 OK to a Playlist play request
*/
const PVMFStatus PVMFInfoPlayListSwitch = 46;
/*
Notification of configuration complete
*/
const PVMFStatus PVMFMIOConfigurationComplete = 47;
/*
Notification that the video track is falling behind
*/
const PVMFStatus PVMFInfoVideoTrackFallingBehind = 48;
/*
Notification that memory is not available for new RTP packets
*/
const PVMFStatus PVMFInfoSourceOverflow = 49;
/*
Notification for Media data length in shoutcast session
*/
const PVMFStatus PVMFInfoShoutcastMediaDataLength = 50;
/*
Notification for clip bitrate in shoutcast session
*/
const PVMFStatus PVMFInfoShoutcastClipBitrate = 51;
/*
Notification for shoutcast session
*/
const PVMFStatus PVMFInfoIsShoutcastSesssion = 52;
/*
Notification that the engine must select tracks (for e.g. during a 3GPP FCS)
*/
const PVMFStatus PVMFInfoTrackSelectionNeeded = 53;
/*
Notification for corrupted clip during playlist playback
*/
const PVMFStatus PVMFInfoClipCorrupted = 54;
/*
Notification that source format has been updated
*/
const PVMFStatus PVMFInfoSourceFormatUpdated = 55;
/*
Notification for invalid ts in the RTP packet
*/
const PVMFStatus PVMFErrInvalidRTPTimeInPkt = 56;
/*
Notification that pvmiGetBufferAllocatorSpecificInfoSync was unsuccessful
*/
const PVMFStatus PVMFPvmiBufferAllocatorNotAcquired = 55;
/*
Notification that pvmiGetBufferAllocatorSpecificInfoSync was successful
*/
const PVMFStatus PVMFPvmiBufferAlloctorAcquired = 56;
/*
Placeholder for end of range
*/
const PVMFStatus PVMFInfoLast = 100;
/*
Macro to tell if a code is in PVMFInfo range
*/
#define IsPVMFInfoCode(s) ((PVMFInfoFirst<=s)&&(s<=PVMFInfoLast))
Placeholder for end of range
*/
const PVMFStatus PVMFInfoLast = 100;
/*
Macro to tell if a code is in PVMFInfo range
*/
#define IsPVMFInfoCode(s) ((PVMFInfoFirst<=s)&&(s<=PVMFInfoLast))
// Convert a PVMFStatus code to a string that can be used in logs.
// @param status code.
// @return a human readable string representing the status.
OSCL_IMPORT_REF const char *PVMFStatusToString(const PVMFStatus status);
// @param status code.
// @return a human readable string representing the status.
OSCL_IMPORT_REF const char *PVMFStatusToString(const PVMFStatus status);
#endif
发表评论
-
电脑能上网,Android模拟器不能上网的问题
2013-04-23 10:34 7116电脑能上网,Android模拟器不能上网 一 ... -
Android SDK相关问题
2012-11-15 10:57 21111. Android SDK Manager 卡在Fet ... -
Android环境
2012-07-02 10:16 880developer : developer.android.c ... -
xxx is not translated in yyy, zzz 的解决方法
2012-05-12 19:52 29507在Android SDK Tool r19之后, Export ... -
Android MAT
2012-03-01 11:23 3331安装MAT 生成hprof文件: DDMS-D ... -
分辨率不同的兼容要点
2011-11-15 12:55 0分辨率不同的兼容要点1. 换算比率l : m : h = 0. ... -
Android模拟器快捷键
2011-11-15 00:19 1069F1/PgUp Menu key 菜单键 ... -
Android中shared_prefs文件夹位置
2011-11-13 19:01 15039Android中shared_prefs文件夹位置 一 ... -
Android Device中添加busybox
2011-11-10 23:28 7529Android自带的toolbox(位于/system/bin ... -
Android adb shell
2011-11-04 23:28 11611、获取模拟器/设备列表 adb devices 2 ... -
Android SurfaceView
2011-10-31 12:01 1806最近自己做了个指南针应用,用到了SurfaceView。总结下 ... -
常见Layout的LayoutParams总结
2011-09-28 12:33 11847LayoutParams java.lang.O ... -
Logcat问题的解决方法
2011-09-28 09:40 5455Logcat在Android开发中是相当有用的。 但是,Lo ... -
Android中的数据存储与传输
2011-09-27 11:16 1131以下是工作中的开发总结,如有不妥,望请指出,谢谢! A ... -
ListView与Adapter使用要点
2011-08-12 14:44 14502项目用到ListView,由于要用到 ImageView ... -
Activity的setContentView与findViewById
2011-07-08 09:54 38821. Activity.setContentView(int ... -
Android的SeekBar
2011-07-07 14:52 37324使用SeekBar的时候,经常遇到的问题有如下: 1. se ... -
Android要点
2011-05-23 22:48 0控制层 Activity Intent and Inten ... -
Android Layout 相关
2011-05-23 11:38 9981 假如在同一个layout文件中有2个或以上的view使用相 ... -
Android界面元素
2011-05-17 11:15 8751 界面元素的层次 View与GroupView View ...
相关推荐
在Android开发中,MediaPlayer是处理音频和视频播放的核心类之一,它提供了丰富的API来控制多媒体文件的播放。本文将深入探讨如何使用MediaPlayer自定义循环播放的次数,这在需要重复播放特定音频片段的应用场景中...
`MediaPlayer`是Android SDK提供的一种核心组件,专门用于播放音频和视频文件。在这个场景中,我们将详细探讨如何使用`MediaPlayer`来播放视频,同时结合`SurfaceView`来显示视频画面。本文将深入解析相关知识点,并...
在Android开发中,`MediaPlayer`类是用于播放各种媒体文件的核心组件。它可以处理音频、视频流,支持多种格式,如MP3、AAC、MPEG-4等。在本教程中,我们将深入探讨如何使用`MediaPlayer`播放网络URL、Asset目录下的...
在Android开发中,多媒体播放是常见的功能之一,`MediaPlayer` 和 `SurfaceView` 的结合使用是实现视频播放的标准方式。本篇文章将详细讲解如何利用这两个组件来构建一个视频播放器。 首先,`MediaPlayer` 是...
在Android平台上,`MediaPlayer`是系统提供的一个核心组件,用于播放各种媒体文件,如音频和视频。本篇文章将深入探讨`MediaPlayer`的使用方法,帮助开发者理解和掌握如何在Android应用中实现多媒体播放功能。 首先...
总的来说,"玩转 Android MediaPlayer之视频预加载(优化)"是关于如何在Android平台上利用MediaPlayer组件,结合网络条件、硬件能力、错误处理等多个方面,实现视频的高效预加载,提升播放体验的技术探讨。...
MediaPlayer的使用过程中可能会遇到各种异常,如文件不存在、权限问题等,因此应适当地添加try-catch块进行错误处理。 9. **UI设计**: 在布局文件中,添加一个Button用于播放/暂停,一个SeekBar展示和调整播放...
在Android开发中,MediaPlayer是一个非常重要的组件,它用于播放各种媒体资源,如音频和视频文件。这个组件在处理多媒体内容时提供了丰富的功能,但同时也伴随着一些常见问题和挑战。这篇博客"Android MediaPlayer...
在Android开发中,MediaPlayer是一个非常重要的组件,它用于播放各种媒体资源,如音频和视频文件。本教程将深入探讨如何使用Android的MediaPlayer类来播放MP3格式的音频文件。了解这个知识点对于Android开发者来说至...
**Android MediaPlayer 深度解析** 在Android平台上,多媒体处理是一个重要的功能,而`MediaPlayer`类是Android SDK提供的一种核心组件,专门用于处理音频和视频的播放。它提供了丰富的功能,如播放本地或网络资源...
- 错误处理:`MediaPlayer`在遇到问题时会抛出各种错误,学习源码能帮助我们更好地理解和处理这些异常情况。 - 多线程编程:`MediaPlayer`的异步准备和事件回调涉及到多线程,理解这部分有助于优化应用程序性能和...
在Android平台上,`MediaPlayer`是系统提供的一个核心组件,用于播放音频和视频文件。这个组件支持多种媒体格式,包括MP3。在这个示例中,我们将深入探讨如何使用`MediaPlayer`来播放MP3文件。 首先,我们需要了解`...
Android提供了多种API来处理音频、视频和图像,其中之一就是`MediaPlayer`类。这个强大的工具允许开发者播放本地或网络上的媒体文件,为用户创建各种多媒体应用提供了便利。 `MediaPlayer`是Android SDK中的核心...
在Android开发中,`MediaPlayer`是用于播放多媒体文件的核心组件,它可以处理音频、视频等多种格式的媒体资源。然而,有时我们需要处理特殊的网络环境或者需要实现特定的功能,例如播放反盗链的媒体文件或实现边播放...
在Android平台上,开发一个简单的音乐播放器应用是一个常见的任务,主要涉及到的核心组件是`MediaPlayer`。这个组件提供了音频和视频播放的功能,对于构建一个基础的音乐播放器来说,至关重要。以下将详细介绍`...
在Android平台上,`MediaPlayer`是系统提供的一个核心组件,用于播放各种媒体文件,如音频和视频。本篇文章将深入探讨`MediaPlayer`的高级用法,包括但不限于事件处理、流媒体播放、音量控制以及错误处理等方面。...
自定义MediaPlayer视频播放器,兼容各种视频类型播放。解决视频加载不出来黑屏问题。
在Android开发中,`MediaPlayer`是一个非常重要的组件,主要用于处理音频和视频的播放。这个"android mediaPlayer demo"是一个基础的示例,展示了如何在Android应用中集成和使用`MediaPlayer`类。下面我们将深入探讨...
1. 错误处理和异常恢复:原生`MediaPlayer`在遇到错误时可能不易恢复,改版可能增加了错误检测和恢复机制。 2. 缓冲优化:可能实现了更智能的缓冲策略,减少播放中断的可能性。 3. 控件自定义:提供了更丰富的播放...
在Android平台上,多媒体内容的播放任务通常由`MediaPlayer`类来处理。`MediaPlayer`是一个强大的API,用于播放音频和视频文件以及网络流媒体。在这个迷你案例中,我们将深入探讨如何使用`MediaPlayer`来实现基本的...