我正在使用Appcelerator Titanium 3.0.2来允许用户观看/下载视频和音频。以下是获取文件对象和播放音频的代码的一部分。
var filename = self.url.substring(self.url.lastIndexOf('/')+1);
var file = Ti.Filesystem.getFile(Ti.Filesystem.tempDirectory,filename);
if(!file.exists())
self._download(self.url, filename, Ti.Filesystem.tempDirectory, function(){
setAudUrl(file.nativePath);
timeBar.max = audPlayer.duration*1000;
prgHandle = setInterval(updateProgressBar,10000);
audPlayer.play();
audCtrlBar.show();
loading.hide();
},
function(_progress,_position){
httpClient=_position;
loading.show();
},
function(){
noLabel.show();
loading.hide();
});
else {
setAudUrl(file.nativePath);
timeBar.max = audPlayer.duration*1000;
prgHandle = setInterval(updateProgressBar,10000);
audPlayer.play();
audCtrlBar.show();
}
此代码正常运行,但我的问题是如何在用户存在应用程序时删除该文件。由于Apple要求在用户存在应用程序后删除/ tmp目录中的文件。有人可以帮忙吗?感谢。
答案 0 :(得分:0)
您可以使用Titanium的应用程序事件pause和paused。当应用程序变为非活动状态时会调用它们,但这仅适用于iOS。
Titanium.App.addEventListener('pause' /* or paused, see docs */, function() {
var dir = Ti.Filesystem.getFile(Ti.Filesystem.tempDirectory, 'tmpDownloads'); // ensure that you use the same folder for storing the downloaded files. A separate folder is easier to remove.
if(dir.exists() && dir.isDirectory()) {
dir.deleteDirectory(true); // true removes recursively the directory and its contents
}
});
您需要在resume
应用时再次创建目录。