Titanium:在点击表格中的某一行时尝试播放声音时出错?

时间:2011-04-08 23:34:48

标签: audio titanium tableview

我正在制作一个相当简单的应用程序,该应用程序显示一个表格,其中每行包含一个英文单词和相应的波兰语单词。当按下一行时,它应播放所表达单词的声音片段。但是,即使我尝试使用Google提供的所有功能进行故障排除,我也无法使其正常运行。如果有人能指出这个缺陷,我将不胜感激......

var win = Titanium.UI.currentWindow;
var data =[];

var CustomData = [
{ file:'001', english:'Do you?', polish:'Czy masz?', fav:false },
{ file:'002', english:'How long?', polish:'Jak d?ugo?', fav:false },
{ file:'003', english:'Is it?', polish:'Czy?', fav:false },
];

var section = Ti.UI.createTableViewSection();
data.push(section);

for (var i=0; i<CustomData.length; i++) {
    var row = Ti.UI.createTableViewRow({layout : 'vertical', height:'auto'});

    var item = Ti.UI.createLabel({
        color:'#000',
        text:CustomData[i].english,
        font:{fontSize:12, fontWeight:'bold'},
        top:3,
        left:10,
            right:30,
        height:'auto'
    });
    row.add(item);

    var cost = Ti.UI.createLabel({
        color:'#444',
        text:CustomData[i].polish,
        font:{fontSize:12},
        top:0,
        left:15,
        right:30,
        bottom:5,
        height:'auto'
    });

    row.add(cost);
    row.filter = CustomData[i].english; 
    section.add(row);
};

var tableview = Titanium.UI.createTableView({
    data:data, search:search, searchHidden:false, filterAttribute: 'filter' });

win.add(tableview);

tableview.addEventListener('click', function(e)
{
    var sound = Titanium.Media.createSound();
    sound.url = '../sound/' + e.rowData.file + '.mp3';
    sound.play();

    if (e.rowData.test)
    {
            var win = Titanium.UI.createWindow({
                    url:e.rowData.test,
                    title:e.rowData.title
            });
            Titanium.UI.currentTab.open(win,{animated:true});
    }
});

1 个答案:

答案 0 :(得分:0)

只是在黑暗中拍摄,但您确定可以在创建声音对象后设置URL吗?你试过了吗?

Titanium.Media.createSound({url:'../sound/' + e.rowData.file + '.mp3'});

除此之外,您确定从您认为的位置评估相对URL吗?也许可以尝试使用绝对URL来确保。