我收到以下错误java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA
,我想知道这个状态是什么。我正在使用函数MediaMetaDataRetriever.setDataSource(String filePath)
答案 0 :(得分:5)
它被埋没了,但我找到了源头。 Here is a link to the error codes
这是来自ICS的构建,我不确定它在当前版本中的位置。
当我使用midi文件时,我的错误是一个不支持的错误。
来源:
/*
* Copyright (C) 2009 The Android Open Source Project
*
* 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.
*/
#ifndef MEDIA_ERRORS_H_
#define MEDIA_ERRORS_H_
#include <utils/Errors.h>
namespace android {
enum {
MEDIA_ERROR_BASE = -1000,
ERROR_ALREADY_CONNECTED = MEDIA_ERROR_BASE,
ERROR_NOT_CONNECTED = MEDIA_ERROR_BASE - 1,
ERROR_UNKNOWN_HOST = MEDIA_ERROR_BASE - 2,
ERROR_CANNOT_CONNECT = MEDIA_ERROR_BASE - 3,
ERROR_IO = MEDIA_ERROR_BASE - 4,
ERROR_CONNECTION_LOST = MEDIA_ERROR_BASE - 5,
ERROR_MALFORMED = MEDIA_ERROR_BASE - 7,
ERROR_OUT_OF_RANGE = MEDIA_ERROR_BASE - 8,
ERROR_BUFFER_TOO_SMALL = MEDIA_ERROR_BASE - 9,
ERROR_UNSUPPORTED = MEDIA_ERROR_BASE - 10,
ERROR_END_OF_STREAM = MEDIA_ERROR_BASE - 11,
// Not technically an error.
INFO_FORMAT_CHANGED = MEDIA_ERROR_BASE - 12,
INFO_DISCONTINUITY = MEDIA_ERROR_BASE - 13,
// The following constant values should be in sync with
// drm/drm_framework_common.h
DRM_ERROR_BASE = -2000,
ERROR_DRM_UNKNOWN = DRM_ERROR_BASE,
ERROR_DRM_NO_LICENSE = DRM_ERROR_BASE - 1,
ERROR_DRM_LICENSE_EXPIRED = DRM_ERROR_BASE - 2,
ERROR_DRM_SESSION_NOT_OPENED = DRM_ERROR_BASE - 3,
ERROR_DRM_DECRYPT_UNIT_NOT_INITIALIZED = DRM_ERROR_BASE - 4,
ERROR_DRM_DECRYPT = DRM_ERROR_BASE - 5,
ERROR_DRM_CANNOT_HANDLE = DRM_ERROR_BASE - 6,
ERROR_DRM_TAMPER_DETECTED = DRM_ERROR_BASE - 7,
// Heartbeat Error Codes
HEARTBEAT_ERROR_BASE = -3000,
ERROR_HEARTBEAT_AUTHENTICATION_FAILURE = HEARTBEAT_ERROR_BASE,
ERROR_HEARTBEAT_NO_ACTIVE_PURCHASE_AGREEMENT = HEARTBEAT_ERROR_BASE - 1,
ERROR_HEARTBEAT_CONCURRENT_PLAYBACK = HEARTBEAT_ERROR_BASE - 2,
ERROR_HEARTBEAT_UNUSUAL_ACTIVITY = HEARTBEAT_ERROR_BASE - 3,
ERROR_HEARTBEAT_STREAMING_UNAVAILABLE = HEARTBEAT_ERROR_BASE - 4,
ERROR_HEARTBEAT_CANNOT_ACTIVATE_RENTAL = HEARTBEAT_ERROR_BASE - 5,
ERROR_HEARTBEAT_TERMINATE_REQUESTED = HEARTBEAT_ERROR_BASE - 6,
};
} // namespace android
#endif // MEDIA_ERRORS_H_
答案 1 :(得分:5)
我在尝试在空文件上调用java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA
时收到此错误void setDataSource(String path)
。 (0字节)
您需要100%确定文件的路径不为空,不为空,文件本身存在且有效。
答案 2 :(得分:1)
我收到此错误:setDataSource failed: status = 0xFFFFFFEA
因为我的设备上不存在该文件。
答案 3 :(得分:0)
当我的音频文件被删除时,我抓住了这个错误,当我更改文件时它解决了,你可以尝试手动设置不同的源路径
答案 4 :(得分:0)
我的代码中没有空文件或此处提到的其他bug。我尝试使用的文件很好。我不知道为什么,但是当我简单地使用另一个using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Table;
using System.Threading.Tasks;
namespace MyFunctions
{
public class StorageTableOperation<T> where T : ITableEntity
{
internal CloudTable cloudTable;
public StorageTableOperation(string tableName)
{
string connectionString = Environment.GetEnvironmentVariable("AzureWebJobsStorage");
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
CloudTableClient client = storageAccount.CreateCloudTableClient();
cloudTable = client.GetTableReference(tableName);
}
public T GetTableData(string PartitionKey,string RowKey)
{
TableOperation retOp = TableOperation.Retrieve<T>(PartitionKey, RowKey);
TableResult result = cloudTable.Execute(retOp);
T tableData = (T)result.Result;
return tableData;
}
public async Task<bool> UpdateTableData(string PartitionKey, string RowKey, T tableData)
{
try
{
TableOperation operation = TableOperation.InsertOrMerge(tableData);
TableResult tableResult = await cloudTable.ExecuteAsync(operation);
return true;
}
catch(Exception ex)
{
return false;
}
}
}
}
重载时,它对我有用。
我曾经引发此异常的是setDataSource
和MediaMetadataRetriever.setDataSource(String)
简单起作用的是MediaMetadataRetriever.setDataSource(String, HashMap)
。
答案 5 :(得分:0)
当我尝试使用0 kb mp3文件时遇到了这个问题,删除该文件后便解决了。也许您可以捕获此异常。