我想在res / raw文件夹中播放一个mp3文件 但我得到错误"错误(1,-2147483648)"和mp.prepare()上的IOException
我的代码
matplotlib
我也试过
import matplotlib.pyplot as plt
from numpy import arange, meshgrid
delta = 0.025
x_range = arange(-20.0, 20.0, delta)
y_range = arange(-20.0, 20.0, delta)
X, Y = meshgrid(x_range,y_range)
fig=plt.figure()
ax=fig.add_subplot(111)
ax.set_xlim(xmin=-6, xmax=6)
ax.set_ylim(ymin=-4, ymax=4)
ax.axhline(y=0, color='k',linewidth=1)
ax.axvline(x=0, color='k',linewidth=1)
# F is one side of the equation, G is the other
F = (X**2)/2.0+(Y**2)
colrs_tuple=('k','c','c','k')
#C = range(6,14,3)
C = (2,6,9,12)
#print(type(C))
CS = plt.contour(X, Y, F, C, colors=colrs_tuple)
labels = plt.clabel(CS)
xy = [t.get_position() for t in labels]
print(xy)
F=Y
G=X**2
C = (-5,-3,-1,1,3,5)
##for c1 in C:
## CS=plt.contour(X, Y, F/G- c1,[0], colors='c',linestyles='dashed')
## labels = plt.clabel(CS)
## xy = [t.get_position() for t in labels]
## print(xy)
##plt.show()
CS1=plt.contour(X, Y, F/G,levels=(-15,-3,-1,-0.5,0.5,1,3,15), colors='c',linestyles='dashed')
labels1 = plt.clabel(CS1)
plt.show()
我试过的另一个解决方案
try {
MediaPlayer mPlayer = MediaPlayer.create(NavigationHome.this, R.raw.notfy);
mp.prepare();
mp.start();
} catch (Exception e) {
e.printStackTrace();
}
这些对我来说也没有用。
答案 0 :(得分:3)
如果你可以在你的问题中发布StackTrace,那将会有更多帮助。
但是,根据您问题中的信息,以下代码可用于播放原始资源文件夹中的媒体文件。
如果您使用 create()方法,则会在内部调用 prepare(),您无需显式调用它。
MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.notify);
mediaPlayer.start();
但是,需要考虑的是,prepare()通常会抛出 IllegalStateException ,在您的情况下,您将获得 IOException 。因此,值得检查文件是否实际存在于原始文件夹中和/或文件是否已损坏。
答案 1 :(得分:1)
尝试在准备媒体播放器或设置数据源之前初始化媒体播放器
从外部目录播放
String filePath = Environment.getExternalStorageDirectory()+"/folderName/yourfile.mp3";
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(filePath);
mediaPlayer.prepare();
mediaPlayer.start()
从原始文件夹
MediaPlayer mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.song);
mediaPlayer.start();
答案 2 :(得分:0)
试试这个
String fname="your_filename";
int resID=getResources().getIdentifier(fname, "raw", getPackageName());
MediaPlayer mediaPlayer=MediaPlayer.create(this,resID);
mediaPlayer.start();